Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
CoolKirby wrote:
I should point out that we omit "any%" on this site. It may sound unusual, but it's the basis of our branch structure. The TAS with no branch is assumed to be any%/baseline for that game, while others usually describe a modifier for it such as "all shards", "Alucard path", and "Rank 5". This is why any% was cleared from your last submission, and why it will eventually be done for this one.
Speaking of your last submission, you should cancel it, since you've submitted this improvement of the same game and branch. Go to the Edit button on the old submission, click the dropdown that reads Judging Underway, and set it to Cancelled.
40 seconds is a lot of timesave! Well done.
I see "any% can usually be omitted" in that field for the prefilled text when the field is empty. If you don't want "any%" to be used, I'd suggest rephrasing it to "leave this field blank if any%" or something similar. "Usually" means something like a 70-90% chance or so and the word "can" hints to be optional. It's a bit confusing and is the only reason why I was putting it in. Of course, things like "100%", "glitchless", or "any% pacifist" would make sense for that being put there.
40 seconds is huge against 9:23 - that's a 7.1% reduction! I did state in the previous post that I got the time down to 8:43, and the new submission is proof of that. I was also streaming it live on my Twitch where I started everything from the beginning, with the setting of the sync settings and opening TAStudio where only a single empty frame shows. I explained everything, including all instances of RNG manipulation that I used, among many other things.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
#10771: ulillillia's DOS Zeliard in 08:43.027
I have submitted my 8:43 TAS of Zeliard, an improvement of 40 seconds compared to the first one. It took a while because of employment and working on an in-depth version of the output video (which is still in the works - need to work on the programming aspect to generate the images).
Edit: fixed link - didn't need the S after the ID number.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
I finished up with a live stream for another update on the Zeliard TAS where I got a time of 8:43, which is a fairly hefty 40 seconds faster than what I first submitted. I'm working on processing the video and proofreading my description details. I put off posting the 8:54, suspecting another hypothesized improvement as I worked the updated description, and it turned out to be quite the improvement. I don't really see any further room for improvement outside of RNG or maybe small odds and ends, short of a major glitch discovery.
I do have a question though: is it possible to submit route maps, like the routes used to get through areas? They'd be basic PNG images.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
The only things that happen after HP maxes out (at 800) is basically getting 2 charges for each of the spells until they cap out at 255 charges. Attack power still continues to climb though, until a soft cap at level 254 where 128 damage is dealt per strike with the training sword (143 with illumination). I don't know what happens when you try to get a level up when you reach level 255. Usually, in all towns before that, the sage mentions of not being able to provide any further power and to seek other towns. Only the sage in Pureza has no limit other than 255.
With my level 116 file, the highest I've been, I can defeat the worms in area 8 in a single hit with the training sword (they have 48 HP). All others require 2 hits but can be defeated in a single hit with the stab used. To max level at 255, where my fastest method gives about 8 per hour, that's still the better part of an entire day of doing the same stuff over and over. There is a test I'd like to do for a potentially faster way to level up. Other than that, there really isn't anything worth noting about further leveling up beyond HP maxing. The magia stone is essential to rapid leveling. I've done the RAM searches and figured out how the magia stone works in depth.
Of course, a fast way to level up would just be setting the experience value (0x00ACDE) to 65,000, freezing the value and just keep using "see power" until max level (0x00ACDD) is reached just to see what happens. Though that's cheating, it can answer questions regarding level. When you level up, experience is deducted by the amount needed for the level up. If this amount is still greater than what's needed for the next level up, then experience is directly set to whatever is 1 less than this amount. Thus, by freezing the RAM value, the deduction never occurs. Oh the joys of studying game mechanics!
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
I began reworking the TAS in BizHawk, originally wanting to study how the game works, and I ended up going at doing the entire game again, testing one of my theorized time saves. It turned out that the theorized time save was vastly more significant than I was thinking it would be. I questioned if it was going to be any time saved at all, or a time loss, but it was unexpectedly a massive time save of a bit more than 5%.
In short, I sacrificed 2 level ups in exchange for exchanging almas for gold and buying 2 sabre oils. The last input occurs on frame 37,428, which, at the 125,875/1796 frame rate, converts to 534.0273 seconds, which is 8:54.0273. Being able to view RAM values also gave me an extra edge, especially enemy placement for RNG manipulation. The route is mostly unchanged aside from skipping 2 level ups and the alma exchange and sabre oil purchasing. Other minor differences are mostly from RNG.
How can I go about updating the TAS submission? Do I just submit another, or is there an update routine? 29 seconds on something already under 10 minutes is a huge time difference (about 5.14%). And this time, I remembered to remove the USR files before making that CD ISO so it should be a clean slate.
I'm considering a possible 100% TAS where I pick up every key, spell, unlock every door, grab all secret items, open every treasure chest, defeat all bosses, and obtain max HP with the best shield. Level caps at 255, but reaching that, even in casual play, takes nearly an entire day, so I'm thinking just maxing HP should be enough, which occurs near level 20.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
Ah, now it's working! The reference to CD, I thought, was either "change directory", a DOS command, or "compact disk", for which Zeliard does not come on compact disks (that I know of) - it comes on 2 floppy disks. That aspect confused me. Now I can start to do some RAM searches and deep study this game's mechanics to learn more about it for a potentially more improved TAS.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
feos wrote:
Files sizes and hashes are contained in the movie. But during my attempts at trying different save files I missed that original movie included MSCADLIB.DRV while my test one somehow didn't.
The MSC prefix is relating to "music card". You can see references to that in the install.exe. SND is for sound, for sound effects. Ad lib is the "SoundBlaster", generally considered the best. I loved the Tandy 1000 version though as that's what I grew up with, especially the sound effect that occurs when you hit a regular enemy where that hit doesn't defeat it. I remember it very well as being like a string instrument playing a lower pitched sound followed by a higher pitched one, which, today, I feel may be what's called a perfect fourth (A note of C4 going to F4 (5 half-steps up) is a perfect fourth). That sound effect is what drove me to doing the "weak" play through where I only get a single level up (for a little extra HP without doing any additional damage) so I could attempt to squish the jellyfish (I used to call them squids as a child) with a gray platform. The jellyfish have 100 HP, so I could get that sound effect to occur 100 times in a row. At speed 5, it really sounded its best. Ultimately, it's what got me into making my own video games.
I still can't get BizHawk to run Zeliard for TASing. I've set the hard disk to 20 MB in the sync settings, and I've run through the install program as a way to try to get BizHawk to run Zeliard via TASing it, I only end up with "not enough disk space" or some weird errors that sometimes show card symbols (like the spades or clubs). I still haven't been able to get Zeliard to run in BizHawk. There must be some other approach to it that I don't yet know about. Is a "mount" required at all? I've tried doing "copy a:\*.* c:" and running that. The copy operation worked. I tried running Zeliard from that, but only get weird errors with those card symbols and other random stuff. I tried the install routine, and I only get an error saying that it cannot set the config file and ultimately leads to an error saying that there isn't enough disk space and that 1.1 MB is needed, when I know I've set 20 MB for the HDD size so there's easily way more than enough space. Something else must be going on.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
I wonder what file was missing. Hopefully my full list of all files helped. I did your test with the all zeros for those 3 user save files, updating them first, then creating a new disk image using that, then loading the JRSR movie file you provided. Yep, I can confirm it played through in full. I got a checksum of 72ba72b70f2a70457e6bc304f1d54015 for the "+HDD" line in the JRSR file itself and that's the same checksum I got when I created the HDD image. I played it through and saw that everything exactly synced up.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
feos wrote:
I can't get the movie to sync. I used empty USR files, imported as HDD image, assembled system, saved movie, used its contents (HDD ID and hash, also hashes of USR files) to transplant them into the submitted file, and loaded that. But it fails to enter the game. I tried USR files with 256 zeros, same result. I even used hex data provided by ulillillia for the USR files but when I save it as actual files, I get different hashes for them than in the movie, HDD hash is also different, and the movie desyncs in the same way somehow.
I took a screenshot of the file in my hex editor and what I had for what I copied and rapidly swapped between them to spot differences. I found a pair of small mistakes, which may be why it's not syncing up exactly. Here's the corrected data:
The first mistake I found was in MAIN.USR. I had bytes 0x30 and 0x31 incorrectly placed. If you move those 2 bytes to 0x38 and 0x39 (mixed in with all those 0x00 in that line, shifting that line over accordingly, the corrected result is produced. The second mistake that I found was in WEAK.USR. Bytes 0xE1 and 0xE2 were originally 0xAC but should've been 0x1C. I did not find any flaws with MAIN2.USR.
I hope this helps. If it helps any further, the file size of the jpcrr-r11.8-rc2.jar file is 1,031,068. Here is a list of all the files included with Zeliard, with their actual file sizes, in case of any other mismatches (note, all files are always in uppercase):
__INSTH.BAT = 986
EXISTS.COM = 574
GAME.BAT = 39
GAME.BIN = 1142
GMCGA.BIN = 3565
GMEGA.BIN = 3736
GMHGC.BIN = 3723
GMMCGA.BIN = 3273
GMTGA.BIN = 3704
GODIR.COM = 507
INSTALL.EXE = 19,001
INSTALL.PIF = 967
INSTGAME.BAT = 776
MAIN.USR = 256
MAIN2.USR = 256
MSCADLIB.DRV = 3015
MSCJR.DRV = 2666
MSCMT.DRV = 1746
MSCSTD.DRV = 2123
MTINIT.COM = 3705
RESOURCE.CFG = 74
SNDADLIB.DRV = 4036
SNDJR.DRV = 4414
SNDSTD.DRV = 2576
SPACE.COM = 500
STDPLY.BIN = 233
STICK.BIN = 4150
WEAK.USR = 256
Z.bat = 35
ZELIARD.EXE = 3050
ZELIARD.PIF = 967
ZELRES1.SAR = 256,952
ZELRES2.SAR = 345,218
ZELRES3.SAR = 342,434
Note that the "Z.bat" has an odd case of a lowercase BAT extension. Would you like SHA1 checksums of the 3 USR files? The only other thing I can think of would be sending a ZIP containing those 3 files, where I'd need to use a site like Filemail to send it.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
With continued testing, what I thought was working, actually wasn't. When I load the movie, it's looking for the specific checksum D6739944312AABC72CB9C98C4903BD56. I even tried deleting 90% of the game's data and creating a new disk image to see if that would do anything, assembling it then loading the movie. It made no sense to me how having 90% of the game's data missing (being barely 100 KB instead of just over 1 MB) allowed the movie to still run through in full where I'd have expected crashes and errors to occur. So, suspecting that it was looking for the checksum of the disk image itself, I backed up the "disklibrary" folder by zipping it up, then I went into it and deleted the initial disk image that the TAS was built on. When I tried to load the movie then, that's when I got the error showing up where it can't find the image with that disk image. So, it appears that the original USR files are needed. From looking at the list of checksums that show up, even changing a single byte in a USR file causes the checksum to be completely different. Thus, either the USR files need to be created using the indicated hexadecimal values, or I'll have to have some way to send the 3 USR files (in a ZIP).
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
feos wrote:
What happens if you put the 3 files with the required names there but they only contain zeros or are empty?
Okay, so I did some tests. I first zipped the Zeliard directory for easy reverting as needed, where the ZIP is outside of the game folder so it has no effect. I opened my JRSR movie file and played it just to make sure things were good to go, serving as a control. It played through as I expected it to. I closed JPC-RR, deleted Main2 and Weak, opened my hex editor (XVI32), and edited MAIN.USR so that all bytes were 0s and that there were exactly 256 bytes. I saved it, copied the file twice, renamed the copies to match the exact original files, and started JPC-RR. I loaded the movie and let it play through. It played through 100% in full exactly as is. So, I repeated the process of deleting 2 of the USR files, but this time, I edited the file so that it was completely empty, being a zero-byte file. I did the copy and rename method, started up JPC-RR, loaded the movie, and let it run. Yep, even with the USR files being 0 bytes, the movie plays through exactly as is. Thus, apparently, those USR files can be just about anything. I could try changing the names and seeing what happens, but at this point, simply having 256 bytes of 0s only or even a 0-byte file is all that's really needed. I guess that simplifies things considerably and I hope it helps.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
A simple test could be done to see if it has any effect. While I can get the movie to run through, I could copy the Zeliard directory as is (compress it into a ZIP stored outside of the game directory), then delete the 3 USR files in the directory and see what happens. Another option is to start up the game in DOSBox, head straight for the first sage hut, and save the file using one of those names. From that, copy the USR file 3 times and exactly match the names (and case, if the 0x20 ASCII difference matters any), and try to run it with that. Alternatively, I could save 3 separate times under 3 different names each time, to see what happens. Would you like me to do this test and see what happens by simply loading the movie file? (Of course, to revert back, I can just unzip the ZIP.)
At least with this known, when I make another round at doing some tests in BizHawk instead of JPC-RR, I'll make sure those USR files are completely absent before I even start TASing.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
So, I thought of something without having to need to upload any files. As the USR files are so tiny at just 256 bytes each, I thought of just posting the hexadecimal values of each byte that can just be entered via typing them into a hex editor and saving under the appropriate file names? Exact strings for the file names are provided for each section. I've aligned the tables by hexadecimal address location to help out, if needed.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
slamo wrote:
Any .USR file is a personal save file. It seems there are three of them in this disk image: MAIN.USR, MAIN2.USR, and WEAK.USR. The movie will not sync without these, but I was able to at least make the files (without matching the hash) by running the game in DOSBox and saving three times with the appropriate save names in the rightmost building in Muralla Town. I was able to sync it despite not matching the hashes.
Those USR files are game saves from playing the game through a few times in the past. When I began TASing, I simply copied all the files into a subdirectory called "Zeliard" (exact string) of where I have JCP-RR itself at. I had no idea that existing game saves would've had any effect on the sync stuff. As they are tiny 256-byte files, I can send these exact 3 files if that helps any, though I don't know where I could upload them to. One of those saves is where I was at level 116 (according to memory searches) where, at 6-9 levels per hour at the fastest rate I know of, that's easily 14 hours of that. The one called "weak.usr" is where I only got a single level up and got to area 8 so I could use one of those gray platforms to squish enemies, doing 1 damage every other frame. The sound effect that this produced while playing on the Tandy 1000 system is partly what got me into wanting to make my own video games, which is something I actively do today as a hobby.
If there's anything else needed, if it helps with verification and what not, let me know.
Joined: 8/6/2026
Posts: 16
Location: 🇺🇸 United States
I have a few other TASes that I'd like to do. For actual speed runs, I have the following in mind:
Destination Earthstar
Galaxy 5000
Jumping Flash 1
Jumping Flash 2
In addition to speed runs, I have some super plays intended. Jumping Flash is the primary where I want to focus on maxing the extra bonus. I had a good start on it, nearly 5 minutes in, which is about 1/3 of what it takes, and I slipped in maxing the height out as well for the fun of it and manipulating the RNG to get a ton of time extension bonuses (like 12+ minutes left on the clock when you normally start with 10). In casual play, I've gotten over 5 million extra bonus where I can have max score in barely 2 levels. With a TAS, I could have max score in just a single level! This would also be applicable to Jumping Flash 2. I'd also like to get max score with Felix the Cat. I don't know if the score maxes at 9,999,990, 9,999,999, or 16,777,215, or something else. There is an easy way to do it but it requires extensively farming for lives. In casual play, I've gotten to about 5 million at the most.
Another superplay I'd like to do involves the Super Monkey Ball games. One involves maxing the lives out and another involves Monkey Shot for maxing the score (I've had just over 8 million points at the most in casual play).
I've made other TASes before, but they are not actually speed runs. They are things like overflowing the falling speed in the original Bubsy, going through Ristar on super difficulty, or crashing the NES game Pipe Dream from getting too high of an extra bonus, I never posted them here as they weren't actually speedruns and I wasn't aware of this site much at the time. I can't open any of the previous superplays though, getting errors about synchronization issues. Attempting to rename the TASProj file to a zip so I can remove some files from it and reupdate the extension to TASProj. That allowed it to load, but the synchronization was completely wrong.
I wished I could get Zeliard to work in TASStudio via BizHawk though. It would make future TASing of Zeliard much easier thanks to TAStudio and audio cues. I can't get Zeliard to run in TASStudio mode because any hard drive setup gets cleared out when I start up TAS Studio and the option for setting one is grayed out. I've tried doing a mount like you would in DOSBox, but that didn't work as the C drive doesn't exist. I can get the hard drive going and run the game for casual play, but I can't use the keyboard at all because of hot key conflicts which forces me to have to use a controller or the virtual keyboard which is quite awkward. At least Zeliard has simple enough controls for a controller to be usable for most stuff.