Post subject: Learning JPC-RR for DOS
Player (56)
Joined: 3/16/2018
Posts: 34
Location: KC
I would like to learn more about using JPC-RR to do TAS runs of DOS games, and I decided to start with Crystal Caves because it's a fairly simple platformer. I've been reviewing the guides on this site on how to use JPC-RR, and I've been able to start the game using the FreeDOS image and generate a very short recording that skips the autoexec.bat, launches into the game, and runs across the first floor of the game. The information on the emulator resources page is very good for getting the initial setup created, but I've had a lot of trouble finding any information about anything beyond those steps. My main questions so far: 1. Is there a TAS-focused guide on using JPC-RR after it's been installed? I've seen links to the formal documentation for the application, but I'm not sure how useful it will be to just dive headfirst into the manual. 2. Are there any other tools used for DOS runs besides JPC-RR? I haven't seen any obvious way to review the contents of a recorded video or edit what has been created (minus simply pausing the video and revising the subsequent actions), so I'm not clear if there's anything else I should be aware of. I've seen c-squared's post on some lua scripts, but without any programming experience I'll save that for after I've learned the basic tool. 3. Specific to running Crystal Caves (the only program I've run so far) it runs slowly if I just tell the game to 'Start' after assembly and let it run freely. Obviously doing single-frame advances will be slow, but I'm guessing JPC doesn't run at the same speed as DOSBox when running an application? Also, I get some artifacting when advancing through the game's opening movie, and I don't know if that's because I need to use different video settings, if the game itself isn't suited to JPC, or if I'm just using the tools incorrectly. I've tried to do my homework before asking any questions, and I've made a little progress, but I think I may have jumped into the deep end of things by looking into DOS games and selecting a title without any existing TAS videos. Any pointers would be greatly appreciated.
GJTASer2018
He/Him
Joined: 1/24/2018
Posts: 299
Location: Stafford, NY
There's some stuff about that topic in the Star Trek 25th Anniversary thread. Failing that, you can talk to c-square, he's the resident JPC-RR expert around here. :)
c-square wrote:
Yes, standard runs are needed and very appreciated here too
Dylon Stejakoski wrote:
Me and the boys starting over our games of choice for the infinityieth time in a row because of just-found optimizations
^ Why I don't have any submissions despite being on the forums for years now...
Post subject: Re: Learning JPC-RR for DOS
DrD2k9
He/Him
Editor, Judge, Expert player (2210)
Joined: 8/21/2016
Posts: 1086
Location: US
DungeonFacts wrote:
My main questions so far: 1. Is there a TAS-focused guide on using JPC-RR after it's been installed? I've seen links to the formal documentation for the application, but I'm not sure how useful it will be to just dive headfirst into the manual.
There's no TAS-focused guide that I'm aware of. I personally read the stuff available through this site and basically stumbled my way through the rest of it. I'm still learning.
DungeonFacts wrote:
2. Are there any other tools used for DOS runs besides JPC-RR? I haven't seen any obvious way to review the contents of a recorded video or edit what has been created (minus simply pausing the video and revising the subsequent actions), so I'm not clear if there's anything else I should be aware of. I've seen c-squared's post on some lua scripts, but without any programming experience I'll save that for after I've learned the basic tool.
JPC-rr automatically records all events (key presses, mouse movements, etc), starting fresh each time you assemble. The movie files (and savestates) are .jrsr files which contain the event information. They can be edited directly, but it's quite difficult to do so as desyncs are almost guaranteed. While c-square's scripts can make doing this manual editing somewhat easier, desyncs still can occur. There is unfortunately no TAStuido type interface for JPC-rr. Thus TASing DOS games can be a tedious endeavor as trying to change anything (no matter how small) at a point earlier in your movie typically causes desyncs all the way through forcing all actions after the edit to be redone. For that reason, try to optimize each section to as close to perfect as you can get it before moving forward.
DungeonFacts wrote:
3. Specific to running Crystal Caves (the only program I've run so far) it runs slowly if I just tell the game to 'Start' after assembly and let it run freely. Obviously doing single-frame advances will be slow, but I'm guessing JPC doesn't run at the same speed as DOSBox when running an application? Also, I get some artifacting when advancing through the game's opening movie, and I don't know if that's because I need to use different video settings, if the game itself isn't suited to JPC, or if I'm just using the tools incorrectly.
I'm not sure on the video issue, but otherwise Crystal Caves should be a worthwhile endeavor (I've considered doing it myself). JPC-rr is SLOW....which is part of what makes DOS TASing tedious. Frame advance is one option, the other is making efficient use of savestates. The most recent version of JPC-rr isn't the easiest for TASing; instead I would recommend c-squares modified version which allows for infinite savestates and much easier mouse implementation.
DungeonFacts wrote:
I've tried to do my homework before asking any questions, and I've made a little progress, but I think I may have jumped into the deep end of things by looking into DOS games and selecting a title without any existing TAS videos. Any pointers would be greatly appreciated.
Many people in the community would agree that jumping into DOS first is definitely diving into the deep end of the TASing world. But that doesn't mean you can't do it. c-square and slamo both have good experience with DOS TASing, and I'm getting more proficient myself. We'll help you as we can. Welcome to the world of DOS TASing!
Active player (377)
Joined: 9/25/2011
Posts: 652
Hey DungeonFacts, welcome to DOS TASsing! DrD2k9 has already done a great job of answering your questions, so I'll just add that, although there's not much of a guide, there are a lot of people here who are very happy to provide tips and assistance. It's not that hard, once you've got the basics, and getting past the boot screen loading up the game teaches you basically everything you need to know to make a successful TAS. MUGG just recently picked it up and was able to get out #5850: MUGG's DOS Star Trek: 25th Anniversary in 13:33.18 quite quickly. DrD2k9 started fresh and it wasn't long before he had his first Space Quest submission done. At the moment, JPC-rr is all there is, and I've done my best (out of necessity) to add helper features to make things easier. As DrD2k9 mentioned, the worst part of the process is altering your run and fixing desyncs, so be sure that every screen is the way you want it before moving on (to keep from driving yourself crazy!!). I'm still working on improving this in what little spare time I can find. One thing you should know is that one modification I made was to allow you to just type when the Virtual Keyboard window is active, and it will record the keys you type. Unfortunately, this was meant for helping with text adventure games, and so if you release the key, it will send a key-release as well. For something like Crystal Caves, you want to be holding a key down over several frames, so it may be more useful just to use the click-button interface and avoid hitting keys when the Virtual Keyboard window is active. In regards to the artifacts, can you create a thread for Crystal Caves in the Dos forum and post an encode? We can then try and see if we get the same thing when we run it. FYI to make an encode: 1) Save a movie file of your TAS 2) Load your movie file 3) Start Dumping 4) Start your movie running 5) Stop your movie at the point you want it to end 6) Stop dumping 7) On the command line run:
dumpconvert --video-width=640 --video-height=400 --video-framerate=125875/1796 --output-cscd=%2,crf=0,fullrange=on %1
where %1 is your dump file and %2 is your desired avi filename. Or better yet, put the above in a batch file to run. Finally, DOS TASsing is certainly more difficult to get into than other platforms due to the lack of documentation and refined tools. That said, it's not that much harder, as the real work for making a TAS (route planning, thinking outside the box, patience and perseverance) will be the same regardless of the platform you choose. And the great thing about DOS TASsing is the fact that there are so many amazing titles out there that are completely untouched and ready for the taking. Best of luck, and be sure to reach out any time you need help!
GJTASer2018 wrote:
Failing that, you can talk to c-square, he's the resident JPC-RR expert around here. :)
Aww, shucks! :) Though honestly, Ilarli built the system, so he's leagues ahead of me. I just hack it when I need something added. Slamo and turska also have a ton of experience with the emulator and Apogee/ID games in particular. I'm sure either would be a great source of tips for running Crystal Caves.
Player (56)
Joined: 3/16/2018
Posts: 34
Location: KC
Thanks for the pointers, everyone! I'll get a thread created to track my progress and keep reviewing the materials you've suggested. I'm pretty excited to see how far I can take this. EDIT: New thread.
Editor, Expert player (2327)
Joined: 5/15/2007
Posts: 3927
Location: Germany
When converting dump to avi, instead of typing in the cmd prompt, just make a .bat file with this code:
dumpconvert --video-width=640 --video-height=400 --video-framerate=125875/1796 --output-cscd=OUTPUT.avi,crf=0,fullrange=on INPUT
Name your dump file "INPUT", place it in the jpc-rr folder and run the .bat
DrD2k9
He/Him
Editor, Judge, Expert player (2210)
Joined: 8/21/2016
Posts: 1086
Location: US
See this post for further info on the video glitch and other booting options.