Jump to content


  • Posts

  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

loam's Achievements

Fuwa Novice

Fuwa Novice (2/11)



  1. Hi there. I just want to give a heads up regarding support of the Steam release of Clover Day's Plus: It's the same engine as previous NekoNyan ports. The encryption mechanism is the same as the one in Aokana/Senren Banka Switch, Parquet Android. You'll be able to unpack the .dat files by passing "portable" to the format argument of the tool, for example: NekoNyanDatTool.exe --input "C:\Install Folder\Clover Days Plus_Data\StreamingAssets\adult.dat" --output outputFolder --unpack --format portable (Beginning of rant) Once again the assets are needlessly encrypted, killing any compression opportunities for the download size and making Steam waste its time trying to compress what's there to the benefit of absolutely no one and detriment of everyone. But at least it's the same stupid system so you guys can use keep using the same tool. Also using il2cpp for the very needed maximum performance on a glorified image viewer with overlay text, where all of the code that had a chance of putting a load on the CPU (namely Emote) would have already been on native libraries anyways, with the usual Unity bloat that will make even the biggest CPU caches scream and run in fear, which no native compiler will ever fix. I hope next time they exclude the Augmented Reality, Web Cam, and Android modules from the Windows build of a Visual Novel (and this is assuming that Unity provides that capability, you'd assume considering how widely used the engine is... I'd be slightly surprised and disappointed if that's not a thing EDIT: okay it is a feature: https://docs.unity3d.com/Manual/upm-ui-disable.html). I pray that they don't change the "encryption" format, not because it'll be hard, it'll just be even more bothersome because of native code shenanigans, which is just a waste of everyone's time.
  2. Hey there's, it's been a while. I didn't even knew there was an update for the game already! Seems I missed it for a little beat over a year... sorry for that! The patch already contains fixes to the script from PC that were not yet released on Switch, and I think the fixes are very minor, so if you really want to play, I'm sure the base version (or an update that released when this patch released - I'm not sure anymore!) should work. I've retired from Switch homebrew (Steam Deck replaced all of its homebrew use so I lost interested), and because of this the project is very buried and archived under my hard drive, but I still have the tools so I can probably come up with something next month, no guarantees though. Some asked me (through other social media) if something could be done for a Senren Banka R18 Switch Patch, which runs on the same engine. I tried researching to this, but it's incredibly difficult to pull off because the original source of the scripts was compiled to an M2 middleware format (that I can only describe as a rather needlessly complicated hot mess of garbage). As a result, macros got expanded into single operations for the original engine. On the Switch, these macros were implemented on the engine itself and converted variants are to be seen on the converted source that this engine uses. To do a Switch patch requires a workload multiple times bigger than what the Aokana patches took. In theory it's possible and I already tested this over a year ago, but distributing a simple drag and drop for EXTRA 1 would be piracy. I could make a patcher or something but eh... Sorry for the horrible delay. In case you're still interested: https://github.com/theloam/aokanaproc
  3. I'm releasing a NekoNyanDatTool update (previously known as AokanaDatTool, but renamed because several games now use this engine). It can now (un)pack Parquet (Mobile/Unity) and Senren Banka Switch/Unity files. Both games use the "aokana_switch" format; I've added aliases for those for ease of use, "parquet_mobile" and "senren_switch" respectively. The reason it couldn't before was because the tool tried to decode the file names as ASCII, but Parquet Mobile and Senren Banka Switch have UTF-8 paths (due to japanese filenames). This has been fixed. Binary: https://www.mediafire.com/file/0cw55ccjp2c77cn/NekoNyanDatTool.exe/file Source: https://www.mediafire.com/file/3cdhkgijn56t4tn/NekoNyanDatTool_26052022.7z/file Man, the bs5 is so clean compared to whatever mess this psb shit is, fucking M2 Cheeseware... I guess I'll be busy trying to port scenes to the Switch. Also I wonder why they had to bundle in e-mote for the relatively basic subset Senren uses...
  4. I've updated the Linux patch for AokanaEXTRA1 to include the patches from the official 1.01 update, which fixes some small bugs - official note: The Linux patch is to be installed after installing the official 1.01 patch, either automatically by Steam (make sure you don't have any pending updates) or by using the installer they provide (to avoid going through Wine, the installer can be manually opened with tools that can open NSIS installers, for example 7-Zip, then it's just drag and dropping into the game's root directory). If it works correctly, you should see "1.01" or "1.01 (Steam)" while running on Linux. Other than that, installation instructions are unchanged. New download link (link in main post has been updated as well - you don't need to download the older patch for this one to work): http://www.mediafire.com/file/5qkd4az69yytqe0/AokanaExtra1LinuxPatch_1.01.zip/file The difficulty would depend on the engine and its file formats. I've never peeked into other VN engines, I'll admit I'm kinda of a newbie around stuff used in VNs, but small reverse engineering experience as well as experience with the Switch's inner workings and homebrew resources did help a bit in the case of this patch. It was also very easy to reverse engineer the main executable, because of Unity/C#. Other VNs can be harder, specially if it's an uncommonly used engine (less tooling & resources around) and/or contains console-specific changes to the executable and/or file formats (more time spent disassembling). Like I said before, I don't want to make any promises, but I might be looking into other VNs in the future, starting with the ones people have asked me about.
  5. Hey, thanks for reporting this. The bug was caused because the paths were being written with a trailing \ into the .dat file when packing them, because my code is removing the base path without considering that and just removing what you give it in the --input. If you use --input "unpacked_root_folder\" with the broken version, you will notice it will work properly. I used this tool like that while making the Switch +18 patch. This is clearly not the intended behavior, so I've fixed it: Updated download links: Binary: http://www.mediafire.com/file/0zgkf38g3dswoy6/AokanaDatTool.zip/file Source: http://www.mediafire.com/file/51oelx9qq91gh6s/AokanaDatToolSrc.zip/file Thanks for letting me know! PS: I didn't knew a python script existed out there already, but it's clear there wasn't an attempt to understand what the code actually did. I tried to make the code as clear as possible with meaningful variable/function names so I hope somebody finds that useful.
  6. I heard that some were having trouble extracting .dat files that come with Aokana and AokanaEXTRA1, despite it apparently being based on another known format from what I've heard. Here's a tool that allows you to both unpack .dat files to folders and folders back to .dat files that will work with the game if you decide to modify its contents. It supports both the PC and Switch formats. Early versions of this tool were used to make the Aokana +18 patch for the switch, which consisted in simply unpacking the PC +18 files and pack them into the Switch's version format. Binary: http://www.mediafire.com/file/0zgkf38g3dswoy6/AokanaDatTool.zip/file Source code (C#, .NET Core): http://www.mediafire.com/file/51oelx9qq91gh6s/AokanaDatToolSrc.zip/file
  7. The patch is done! Only minor C# script patches were needed, it was just a matter of carrying over what I did in the original game to EXTRA1, so nothing interesting to tell. I'll try to edit the main post to make it look cleaner when I have time. In the meantime there's good instructions on the README file that allow you to even run it under Steam on Linux with full integration working. NOTE: The Linux patch is to be installed after installing the official 1.01 patch (which was released some days after the game's release), either automatically by Steam (make sure you don't have any pending updates), or if using a non-steam version, by using the installer they provide here (click here) (to avoid going through Wine, the installer can be manually opened with tools that can open NSIS installers, for example 7-Zip, then it's just drag and dropping into the game's root directory). If it works correctly, you should see "1.01" or "1.01 (Steam)" while running on Linux. Base patch: http://www.mediafire.com/file/5qkd4az69yytqe0/AokanaExtra1LinuxPatch_1.01.zip/file English videos (these play when you play the game on English/Japanese - not needed if you will play in chinese): http://www.mediafire.com/file/5h53tkbjz7wwatk/AokanaExtra1VideoFilesEN.zip/file
  8. Oops, that's what I get for not really checking the audio files in the .dat files... thanks for the hint. I'll just reuse what I did for the previous patch then. I get why you would use opus on the Switch, since it has a hardware accelerated decoder for opus. I had to use this for a port of an old game, it had performance issues with the original mp3 files, while wav was ok but wasted too much space, so hw accelerated opus was the perfect solution. The game is now running on Linux, and now including a little guide to have full Steam support, something I couldn't really test because I didn't own the Steam version. Some trickery had to be made because Steam was very stubborn and refused to install and launch the game on Linux, or didn't acknowledge instances of the game launched outside of steam. I'll be uploading files shortly and reworking the post since it's become a little bit disorganized with multiple patches/mods in one single post. Some screenshots: I noticed that curiously the chinese videos are now encoded in vp8/vorbis, just like I did for the previous patch. No need for additional downloads for chinese users then. I can only speculate it was because of the good file size gains and little to no quality loss like I also noticed.
  9. Poking at my freshly bought copy Aokana EXTRA1 copy, it now includes a native ogg/opus decoder alongside the .NET-based ogg/vorbis decoder. Asset system is the same as the original Aokana PC version. While reversing it, I found what seems to be a small memory leak with it: the opus file and pcm buffers do get freed, but the library's own pointer does not get freed (the one where the opus file and buffer pointers are stored)! The source code would resemble something like this - if you notice, "decptr" never gets freed. Might be good if someone informs the engine dev at Discord about this, although it's rather small and never becomes a problem (32bytes * 3718 voice lines = approximately 0,12mb leaked when reading all voice lines - seems to allocate multiplying by the ogg channel amount, not sure why, so it might be up to 0,24mb or so): If there's no weird shenanigans with the new stuff, I should be able to finish this in a couple of hours (reinstalled pc so I have to setup dev environment for Linux again).
  10. Thanks for all the hard work! I don't have much time to maintain stuff like that, but it's amazing that someone picked up what I did and made it a simple one click install for Lutris users. I'm not keeping track of the changes in the Unity assembly, just edited the binaries in dnSpy and wrote all the custom Linux code there (on second thought, I probably should... it'll be for the next time then). I haven't created a GitHub account for all this stuff, but I probably will when I find the time to make one and upload the sources there. Feel free to redistribute it wherever you want, the version number is fine too. PD: I was going to post a pastebin including the libaokanaproc.so source now since it was very basic, but I lost the source while reinstalling my PC! It's very basic though, basically just libwebp and a specific function exported. I'll also upload the source of the tool I wrote for the Switch patch, an (un)packer for the .dat files, when I take care of setting up github stuff.
  11. H-Scenes are part of the story, just like the PC version. The only exception is one additional Misaki H-Scene that gets unlocked after finishing her route.
  12. I figured. The issue was that the PC targets 1440p, while the switch version targets 1080p, and scale textures accordingly on the screen. The packed hi-res assets as such were made with 1440p in mind for PC and 1080p for the switch. Using the 1440p assets on the switch caused stuff to scale incorrectly on the switch. I've resized all hi-res assets to 75% of their original sizes (1440 * 0.75 = 1080) so now they'll scale properly. The patch is also now smaller because of that (~52mb smaller). I've updated the main post with more screenshots and the new download link. New download link: http://www.mediafire.com/file/yf86ywni65n6ki8/file Thanks for reporting!
  13. Hello, I've finished the Aokana for Linux patch: This patch allows Aokana to run on Linux natively, without any compatibility software like Wine/Proton/etc. This eliminates most of the bugs related to these compatibility solutions and I guess it removes the overhead of such a compatibility layer if this was of any concern to you. Videos had to be transcoded to webm (vp8/vorbis), because Linux can't play the already-present mp4 videos. The file sizes are very similar for English videos (~16mb bigger) and I didn't notice any visual deterioration. The Chinese videos on the other hand are around ~100MB smaller. You'll have to download them again for videos to work on Linux; the patch will take care of loading these instead. I uploaded these as separate downloads so people don't have to download videos for a language they might not speak. When using Japanese, the English videos are loaded instead (don't worry, the subtitles for the videos between chapters are saved somewhere else except for the opening - it's the same on the normal release) About Steam Integration: I couldn't test it myself, but I provided the Linux equivalent of the library that the game tries to use for Steam, so it should work. Feedback about this would be appreciated. The patch works on Windows too, in case you switch frequently between Windows and Linux. The patch will run the original windows code and will not suffer from the differences Linux has. I also took the liberty to add a small extra feature: If you run the game with the Continue.bat/Continue.sh files on Windows or Linux respectively (or pass --continue as a command line arg, which is what these files do internally), it loads a special save file (a save not present on the load/save menu that gets saved everytime you exit the game; this save on exit functionality was already done by NekoNyan, but not used anywhere) immediately after starting the game, skipping the intro logos/movie and placing you right back where you were last time you played. No Title, no Main Menu. You should be able to try this out even if you've never used the patch before because of what was mentioned before. Unfortunately it has a few but subtle/minor differences from the Windows version (explained why on the rundown further below): Save thumbnail uses Unity-provided bilinear filtering (like the Switch version), which provides inferior quality compared to Windows' bicubic filtering. Importing a background or saving an image using the Sprite Viewer won't work because Windows specific dialogs were used and no alternative was coded into this patch (at least for now). Letterboxing (black bars on sides/bottom) will be present if you resize the window manually and it doesn't match the game's aspect ratio, unlike the Windows version which corrects itself. The game's sound won't be paused when minimized, unlike the Windows version. Apparently the game tries to set the cursor on Windows for things like prompts and the gallery. Even with the original windows game, I never saw this behaviour even though it should've worked (no idea why). In any case, this wasn't ported to Linux. Downloads: Main patch: http://www.mediafire.com/file/k02f4pb0ovxckn7/file REMEMBER: Download the Linux-compatible videos for your language! English videos (also used when the game is set to Japanese): http://www.mediafire.com/file/bhm65i1h9tx68yv/file Simplified Chinese videos: http://www.mediafire.com/file/s3rai72u2je60t1/file Traditional Chinese videos: http://www.mediafire.com/file/fsisjaibh73wc8v/file Screenshots: (SFW) Boring technical rundown: Overall this was fun to do, Unity is a very good engine when used the right way. Any feedback is appreciated, and if the game gets updated I'll try to port any script changes to Linux again too. I hope anyone that ends up using it enjoys it!
  14. Hello, sorry for the late response, as well as for the graphical issue. I could swear I tested this scene though, but I didn't test docked mode, are you using it? I'll look into this in these days.
  15. I've been working on a patch to make it run on Linux natively (i.e. without Wine, an actual Linux executable) with the Linux build of UnityPlayer + patches to the code. Images below (no actual spoilers, just to prevent from cluttering the post) It works great so far, fixes some issues Wine apparently had (missing text on some parts), but it still has a couple of issues (no mp4 player on linux -> op/ed and chapter videos refuse to play so they have to be transcoded + some platform specific stuff stubbed for sake of testing) that need to be fixed before releasing this. Since it's Unity based and most of the code was platform independent, it was fairly easy (except for aokanaproc.dll for which I had to build a Linux replacement libaokanaproc.so for webp decoding, + savefile thumbnails refused to load because a raw texture was being converted to jpg using System.Drawing which only works on Windows officially, had to replace that with a Unity built-in one-liner texture2D.EncodeToJPG(), dunno why that other thing was being used). Expect a release in the following days!
  • Create New...