Homebrew VNDS converted novels

  • Thread starter Thread starter Zoltan
  • Start date Start date
  • Views Views 82,429
  • Replies Replies 135
As for ef, I just looked into it and apparently it's trying to load a huge (1024x192) image at that point in the script. I think just cropping it to 256x192 would fix it. I'll upload a fixed version to the MEGA folder later
When you have time, could you post just the resized image here, without me having to download the entire VN again? Thanks.


So the first fork I tried was this one, which guts out the MP3 and AAC support and replaces it with WavPack support. I figured that wouldn't be a big deal, so I converted my audio files to WavPack using the provided the script and tested it out. I've attached an audio file of what that sounded like. It's unlistenable
In that project, you'll find two of my open issues. The author has already specified that he cleaned up the code in a moment of boredom and doesn't want to work on the software any further. He hasn't responded since.🤷🏻‍♂️


Anyway, I've tested a couple of forks of VNDS and the good news is that they both fix saving.
Would you be able to look at the part of the code that deals with saving, and apply it to the old version we are using?
 
For ef, it was more than just one image. I found several that were too big and had to crop them all.

I haven't been successful in building VNDSx 1.4.9 because it was made for an ancient version of DevKitPro. Asiekierka's fork fixes this by porting it to BlocksDS, but it does this in this in the same giant commit that also removes MP3/AAC support and adds DSi mode support, so it's hard to isolate just the changes that fix building. I've messed around with Sammy6's fork instead and I've been able to revert all of the changes I disliked and improve the stability, but it still crashes every 20 minutes.
 
  • Like
  • Wow
Reactions: ber71 and Nikokaro
I see. Okay, then I'll download that VN again. Maybe, for now, you could port another title to the DS, perhaps one that creates smaller save files. The two titles by KID from the Infinity series seem to work normally, or not? Maybe you could port "Remember 11," the last title in the trilogy (maybe simplifying certain animations).
 
I'll at least try to finish the CLANNAD port since I'm too far in not to. If it doesn't work well on the DS, then so be it. At least it'll be usable on other platforms. But my motivation has taken a serious hit, so I don't know if I'll do more ports after this, unless someone more talented than me can put out a version of VNDS that's actually somewhat reliable.

Remember11 uses a different engine, so I'd have to rewrite most of my conversion code for it. I was mostly targetting RealLive games because that's the engine I'm more familiar with.
 
  • Like
Reactions: Nikokaro
It's a shame there's no way around the saving issue. Actually, Tomoyo After froze two or three times at random points while playing an audio track, but the next time everything was fine. These are random crashes, of little consequence, that don't cause any serious problems. But the game save/load issue is crucial.
A naive suggestion: what if we could save only at specific points in the story, where the data saved in a single file would be significantly smaller. Would that be technically possible?
 
Last edited by Nikokaro,
VNDS doesn't allow unsetting variables, so no.

EDIT: I was able to get to the end of the baseball route on my fork of Sammy6's fork. It's not very stable, but it's bearable. I'll probably release that fork alongside the CLANNAD port, since it's pretty much the best option for the DS right now.
 
Last edited by Poudink,
  • Wow
Reactions: Nikokaro
was able to get to the end of the baseball route on my fork of Sammy6's fork. It's not very stable, but it's bearable. I'll probably release that fork alongside the CLANNAD port, since it's pretty much the best option for the DS right now.
When you say its not stable, do you mean it throws out random errors here and there, the infamous "guru meditation errors", during gameplay (when scrolling text, loading audio tracks or images)? Well, the important thing is that it doesn't happen during saving or loading. 😊
 
I think it's audio-related. Most likely, mistakes were made when restoring MP3/AAC support. Sometimes the audio will become garbled and then soon after that VNDS will freeze completely. It seems to happen at random-ish intervals. Sometimes it happens almost immediately after starting, sometimes it takes over an hour.

There was also a high probability for freezes to happen during background transitions, but thankfully I was able to fix that. Though to be clear, my "fixes" have mostly just been copy-pasting code from asiekierka's fork back into sammy6's fork while trying to keep the AAC/MP3 support intact. I'm a complete newcomer to DS homebrew development, so I don't really know what I'm doing.

Saving is mostly stable. I've had it go wrong a couple of times when I was nearing the end of the baseball route, but it's way more reliable than it was in 1.4.9, where I couldn't even get saves working as early as the second choice in the game. In my build it seemed to work reliably until the very last choice of the Baseball route and I'm hopeful I could fix that by just getting rid of a couple of useless variables.
 
  • Like
Reactions: ber71 and Nikokaro
Excellent. Even small improvements are welcome. Feel free to count on me to test your new VN port on that version of VNDS. Thanks again for your valuable and generous work, on behalf of all the fans of this small and old, but enjoyable and unforgettable console. 🙏
Post automatically merged:

Hi. Have you already converted all the (background/forground) images and soundtracks? I'd be curious to know how much the original 4+ gigabytes are reduced to. Regarding the minigames, I assume you have to cut them out, right?

In the past, when the full english fan translation came out, I only completed the Nagisa route, if I remember correctly. This is the perfect opportunity to tackle the other routes. Welp, some say it takes almost 100 hours to read it all calmly and in total immersion: truly memorable! A complete, miniature version of Clannad on DS is truly a monumental undertaking, one that will go down in the annals of DS homebrew hacking. :bow:
 
Last edited by Nikokaro,
Yeah that was one of the first things I did. It's like 600-700MB. As for minigames, CLANNAD doesn't have any in the first place. Tomoyo After had the Dungeons & Takafumis dungeon crawler game which I obviously didn't port, but CLANNAD doesn't have anything like that.
 
  • Like
Reactions: Nikokaro
Yeah that was one of the first things I did. It's like 600-700MB. As for minigames, CLANNAD doesn't have any in the first place. Tomoyo After had the Dungeons & Takafumis dungeon crawler game which I obviously didn't port, but CLANNAD doesn't have anything like that.
I see. Maybe I got confused with the baseball sequences in Little Busters!, since you mentioned the baseball route earlier, you unintentionally misled me.😅 🤷🏻‍♂️
 
The baseball route isn't a minigame, yeah. It's just a scripted baseball game that happens if you reach the end of the common route without getting into any character routes.

Little Busters! on the other hand indeed has a bunch of minigames, though thankfully they're all made optional (the game always gives you the option to skip them), so if I ever get around to making a Little Busters! port I should be able to safely omit them. Though I'd like to at least try to get the auto battler minigame working in VNDS. I feel like that should be technically possible and it'd be a fun challenge.
 
  • Love
Reactions: Nikokaro
Yesterday I had a go at improving my custom VNDS build's stability and the results are mixed. I've basically reverted as much of the audio code as I could back to exactly what it was like in VNDSx 1.4.9, but I'm still getting the same types of crashes I described earlier. I do feel like they're happening less often now, but that could just be placebo. In other words, YMMV. Maybe you'll even find that the build without these additional changes actually works better for you. Or maybe there's no difference.

Still, I decided it would probably be best to release the builds now so that people can test them. In particular, I'm interested in knowing how well the build works on regular DS/DS Lite systems with flashcarts, because I've only tested them on my DSi with nds-bootstrap and Unlaunch. I'm a bit concerned because trying to launch them with nds-bootstrap in DS mode resulted in a "libfat failure" error, which doesn't happen with VNDSx 1.4.9. I don't get this error with melonDS though, so this could just be an issue with nds-bootstrap.

I've included both a build from before the changes I described in the first paragraph (Build 1) and one from after (Build 2). I've also included the source code for both, so if anyone else wants to have a go at fixing the crashes themselves, be my guest. I'd be very happy for a real solution to be found.

There's still some work to do on the CLANNAD port. I need to implement some missing graphical effects, implement the credits sequences and add some optimizations. I don't know how long that'll take. Maybe a week, if I'm motivated.
 

Attachments

  • Like
Reactions: ber71 and Nikokaro
There's still some work to do on the CLANNAD port. I need to implement some missing graphical effects, implement the credits sequences and add some optimizations. I don't know how long that'll take. Maybe a week, if I'm motivated.
Wow, you were so fast! You're awesome!
Anyway I wanted to leave you some feedback about Tomoyo After. I discovered that the random crashes don't happen if I set the text speed to maximum (no scrolling, all at once). After about two hours, it hasn't happened again. Is it a coincidence? Who knows... 🤷🏻‍♂️
Again, It froze three or four times during saves, but once I tried saving in the exact same spot where it had crashed before, and this time it worked. So the theory of too much data in the save file doesn't seem to hold up. Sometimes it saves, sometimes it doesn't, in the exact same spot. 🤷🏻‍♂️
 
Well, I already knew that it was at least semi-random. The way it usually goes in my experience is that saving becomes less and less likely to actually succeed. I also definitely don't think save files being too large is the only factor, but I do think it is probably an important one. For CLANNAD I'm currently working on having my converter ignore unused variables, which should help with that.

I suspect script files being too large is also factor, which is why I implemented a method to split scripts into multiple smaller files, which definitely helped in my testing. I had a lot of trouble saving during the Misae route which had a large 400KB script, but now it gets split into six chunks, the largest of which is 180KB, and the issue seems to be gone. But I'll need to work on that a little more because some chunks are still way too big (500KB+). Ignoring unused variables will also help with script size, since some of them are being set all over the scripts (even though they're never actually used).
 
  • Wow
Reactions: Nikokaro
Well, good news. I think I found the main reason why saving is broken in VNDSx 1.4.9. In short, it's because there's too many files. VNDS caches the names and locations of every file for a given visual novel, and CLANNAD has 45,241 files, which is a lot of files. Also, 42,706 of those files are voice lines, so it's safe to say those make up the overwhelming majority of the files in the game. That means the sound cache ends up being 1.1MB, which is quite big. I tested the game with all of the voice acting removed and that mostly seemed to fix the saving issue in VNDSx 1.4.9, as I was able to get through the Misae route with only a single crash.

I think Fate gets away with it by having fewer sound files (~28,000) and smaller saves. The incomplete CLANNAD port gets away with it for a similar reason, since it only includes ~25,000 of the sound files and it also has smaller saves. Umineko with its ~45,000 sound files doesn't get away with it, but it's a kinetic novel with chapter select, so it doesn't really need to.

Now, for the bad news. There's probably no good way to fix this. It seems I've hit the limit of VNDS's scalability. I tried reducing the cache size by minifying the file names for the sound files, but it wasn't enough. It only reduced the size of the sound cache from 1.1MB to 792KB. That allowed me to get slightly deeper into the game before I once again got hit with saving issues, but not by much. Trying to minify the names for the rest of the assets would only buy me a couple dozen kilobytes at best, which I can't imagine would be enough either. One thing I could try would be minifying variable names to reduce the size of save files, but I don't know if that would even help, since for all I know the main problem there isn't the size of the save files, but the amount of variables that have to be saved/loaded. And I've already blacklisted every unused variable, so there's not much I can do there.

And obviously, I don't think people really want to play CLANNAD without voice acting. I mean, I guess they could. The original game as released in 2004 did not have voice acting. That was only introduced by the 2006 PS2 port. But the English-speaking world has only really ever known the voice acted version (outside of the fan translation technically being compatible with the original version of the game), so I'd rather not force people to play without voice acting.

But, well, to be honest, I think my custom build is stable enough. It definitely crashes more often than VNDSx 1.4.9 does, but I think I've gotten it to be tolerable enough. And since skipping is a lot faster than it was in VNDSx 1.4.9 (or at least it is on DSi), getting back to where you were when a crash does happen doesn't take as long (though you should still save often just in case). So I think I'm officially done trying to get this working on VNDSx 1.4.9. You'll have to use my custom build to play the CLANNAD port on DS. Either that, or you can play without voice acting.
 
  • Like
Reactions: Nikokaro
Hey @Poudink , I wanted to ask you this. Can I put your new, modified vnds.nds in the old VNDS folder, next to the old file of the same name, renaming those when necessary, on the fly, with DSOrganize, to quickly switch between the two versions without always using the PC? All the other files/folders in VNDS are identical in both versions, right?
 
I personally have both versions on my SD card root with different names and it's working fine, no renaming required.
 
  • Like
Reactions: Nikokaro
Hello everyone. A few thoughts on Tomoyo After. Years ago, when the first en fan translation came out, I started reading this title, but the disgusting porn scene thrown in my face at the beginning put me off, so I abandoned it altogether. Now I've finally finished it, and I have to say it left a bittersweet taste in my mouth, more bitter than sweet. The first half is engaging, and cleverly alternates between comic and dramatic moments, until the second half (the beginning of the protagonist's unexpected illness), after which it becomes incredibly boring, dull, monotonous, and even absurd. And then the final scene, with its incredibly slow, unskippable typing, lasting almost half an hour, with the same lines repeated, with slight changes, over and over again. Nah, a real disappointment, alas. It almost seems like a different scriptwriter took over for the second half, but he was confused and out of ideas. Much better are Air and Kanon, among those I've finished. But now I'm eagerly awaiting Clannad... 😋
 

Site & Scene News

Popular threads in this forum