Posts for slamo


1 2
8 9 10
16 17
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
MUGG wrote:
Again, thanks for this run. Are we certain the door bug can't be abused further to somehow skip the other towers? Your submission text explains the opening and closing of doors in the subsequent tower can be influenced by waiting, so this got me a little curious...
What I mean by that is, fewer doors will open in the next tower by waiting. I believe (and I could be wrong) the way this works is that the game has a list of specific doors to open and close, so what you're seeing in the next tower is an abridged version of the door glitch, with the rest of the glitch being expended in the previous tower. Waiting a little bit just wastes door closings that would have made the next tower longer or impossible, it does not produce new door openings.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
FreezerBurns wrote:
That was quite good! Not an all-towers run sadly, but still a good showcase. I will note that the gameplay is running Much faster than it would on a normal dos machine. What's the decision making process behind what Cycles to use and what speed to have it run at?
The CPU divider is set at the default. The speed increase is an in-game function (press + to speed it up, - to slow it down)
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
It could just be that JPC-rr is built for only Bochs. I was able to successfully import a few other BIOS, but they throw up various errors and show nothing on the screen. This might be a dead end.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
So I tried running Fallout recently, and that too succumbs to the "int 15h" error. One thing I missed every time I saw this error is that it's coming from the BIOS. It makes me wonder if there is any BIOS we can plug into JPC-rr to get these games working. I tried using the newest version of the Bochs BIOS and VGABIOS to no avail. It would be interesting to try extracting the BIOS from DOSBox and plugging it into JPC-rr, but I have no idea where to start or if it would even be compatible. Either way, I think it's worth looking into other BIOS.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
I've been playing around with jumping on enemies in tower 5 since there's an enemy that can be jumped upon. I haven't had any luck chaining jumps together since the enemy tends to flee after being jumped on, and trying to jump in its retreat direction doesn't work. Jumping is a good finishing move though.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Progress so far: Link to video First tower was skipped in the way described in the previous post. You have to wait a little before exiting because otherwise you'll get unwanted door closings in the next tower. I'm fairly happy with the route for the second tower. The RNG is more flexible than I originally thought. Jumping forward affects the RNG and is a really nice way to manipulate without taking any time. I was able to do pretty much whatever I wanted with the enemies, including baiting several of them into traps. I put together a Lua script to track enemy locations as well. Note that exiting the second tower is just for presentation here. The full run will set up another door glitch before exiting, as tower 3 is skippable.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
I've come up with a bit of a breakthrough. It turns out you can activate the door glitch in practice mode and then apply it to any tower in the quest cycle by loading your quest cycle save. In the case of tower 1, it's not necessary to open the load screen, just back out to the main menu and start a new quest cycle after activating the glitch. Room 9 in tower 7 is the fastest switch to reach in practice mode, as far as I know. Once you reach tower 5 you should make a save in room 15 to expedite the glitching process, but for towers before that it's much faster to set it up in practice mode than do an entire tower. Combining mine and MUGG's testing it seems it's possible to skip 7 towers: - 1 (A1) - 3 (A3) - 4 (A4) - 6 (A6) - 7 (W1) - 9 (W3) - 12 (W6) I can also confirm that the glitch works the same in JPC-rr as it does in DOSBox, even the corruption and crashes.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Good idea. Here's a simple memory poker so you don't have to keep changing the numbers in the script: http://tasvideos.org/userfiles/info/45915235912113848 Just type "write x y" into the console, where x is the address you want to change and y is its new value (bytes only, although this can easily be modified). Feel free to frankenstein this into any script to add memory writing capabilities.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Here's the Lua reference I always use: http://repo.or.cz/w/jpcrr.git/blob/refs/heads/r11-maint:/datafiles/luakernel That has all the drawing functions you'll need. If you want to write text on the screen, just remember first to put this line at the start of the script:
dofile("textrender.lua");
EDIT: I guess I should add that the render_text function you'll need isn't in the reference, but you can see it in the textrender file. It works like this:
render_text(flags, x, y, text, singleline, red, green, blue);
Just set flags to 3 and singleline to false.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Yeah, the intro can be skipped just by pressing enter. Other than that, the run seems pretty sound so far. As far as RNG, I wouldn't sweat it too much. From a first glance it looks to me like there isn't any easy way of doing RNG manipulation, so you may just have to deal with the hand you're dealt. If you really want to alter the RNG for the whole run, you could change the initial time in the movie file (line 13) and see if that changes anything. Another thing that might work is delaying entering a level by a certain amount of frames to get different enemy/rock patterns for that level.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
For sound, make sure you type in "set BLASTER=A220 I5 D1 H5 T6" before you start the exe. If the game doesn't autodetect the sound card, go into the setup and choose Sound Blaster 16 (DMA16 5, IRQ 5, Port 220). Not sure if the error message is related to sound, but if it is and my instructions don't fix it, there's not much that can be done about it.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
I just had a frustrating couple of hours trying to get some of these games to work and I feel like I should document this somewhere. There are quite a few games that will not run in JPC-rr and won't be TASable anytime in the near future. All of these games either throw processor exceptions or an error message about "int 15h" not being supported. Descent Wacky Wheels Terminal Velocity Quarantine One Must Fall 2097 Basically, the newer the game is, the less likely it gets that it will work in JPC-rr. Also for the record, Windows 3.1 won't work (even with an MS-DOS boot disk). Although there are still a couple games I want to do, I feel like this emulator is getting close to the end of its usefulness for me. Hopefully we get a miracle and somebody makes DOSBox-rr at some point.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
GJTASer2018 wrote:
slamo wrote:
It's unlikely I'll do an all hostages run, but it might be kind of entertaining and I'll keep it in mind. The run still wouldn't serve the purpose of filling in the story, as all the dialogue would be skipped through extremely fast (as you saw with the floor 81 hostage in the run). TASes aren't very suitable for exposition.
Would "all hostages rescued" count as a 100% completion run? At the very least, it would provide more opportunities to show off glitches and precision shooting with the laser...
The game has no percent counter, so the definition of 100% would be subjective and would have to be determined by the community. There's a good argument for having it be just rescuing all the hostages, but some people might want you to collect all items, secure all rooms, etc.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
GJTASer2018 wrote:
Also a yes vote. I'm curious, slamo, if you're planning on doing an "all hostages rescued" run instead of just this any% run. You mention in the submission comments some messages don't make sense unless you rescue a certain hostage, so an "all hostages rescued" run would make a viewer unfamiliar with the game more appreciative of what's going on.
It's unlikely I'll do an all hostages run, but it might be kind of entertaining and I'll keep it in mind. The run still wouldn't serve the purpose of filling in the story, as all the dialogue would be skipped through extremely fast (as you saw with the floor 81 hostage in the run). TASes aren't very suitable for exposition.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Here's the new movie file with the fixed ending. http://tasvideos.org/userfiles/info/44692744289413095
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Thanks for checking it out. Your experience with my movie was about the same that I had, I just wasn't sure if it was desyncing more than usual. Your methods for recording and running the tas file seem pretty solid and I can't see where any inaccuracies would come from. I'll go on ahead with resyncing the run, it will still be much faster than redoing all the inputs. Again, thanks for looking into it and I'll definitely be using this in the future.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
c-square wrote:
slamo wrote:
I keep having to add extra frames every couple of seconds to get it to resync, so it seems like the script's definition of a frame is slightly shorter than what the game considers a frame. How do the scripts determine how many nanoseconds a frame is, and are there any adjustments I can make to line it up better?
Huh, that's odd. It doesn't convert nanoseconds to frames. The recorder first parses the movie file and converts all relative time entries to absolute times by adding them up as it goes. Next, it steps through the movie, frame by frame, and compares the current time (jpcrr.clock_time()) with the last processed line of the movie file. If the current time is greater than the last processed time, then it processes the lines until it catches up. If the current time is less than the last processed time, it records a frame advance and advances the frame. A quick question, how are you replaying the tas file? Are you letting JPC-rr run, or are you stepping frame-by-frame? Sometimes I've found stepping frame-by-frame ends up giving different results then letting it run freely. If you can send me your tas file, movie file and disk image, I could try it out on mine to see what I can find.
I see, that should be a pretty airtight way of doing it. Running freely and going frame by frame doesn't seem to make a difference, as it desyncs in the same place. There does seem to be some differences in the original movie file and the movie file that results from the .tas file. The start of my movie for example:
!BEGIN events
+0 OPTION RELATIVE
+58472700 SAVESTATE 2d6a0a689bf5b99e43c1d1a0240451f1d08e4caefa7bf6d3 0
+0 SAVESTATE ab3d013c0817f84b9f47df68abf28923e98c60370901b1d6 0
+0 SAVESTATE 02e6de5911a825b97a28fed06c7855a04120ee547cde7635 0
+42859620 org.jpc.emulator.peripheral.Keyboard KEYEDGE 88
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 88
The tas file portion of this chunk:
FAdv:2
Save:0
Save:0
Save:0
FAdv:4
Type:<f12><f12>
And the result of playing back the .tas file:
!BEGIN events
+0 OPTION RELATIVE
+58472700 org.jpc.emulator.peripheral.Keyboard XMOUSEMOTION 0
+0 org.jpc.emulator.peripheral.Keyboard XMOUSEMOTION 0
+0 org.jpc.emulator.peripheral.Keyboard XMOUSEMOTION 0
+57126144 org.jpc.emulator.peripheral.Keyboard KEYEDGE 88
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 88
There seems to be a significant difference when the first KEYEDGE event starts. I'll send you a PM with what you need.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
So I've been trying this out, it works fairly well and the instructions are great. The only problem I'm having is that there are a lot of desyncs while running the recorded .tas file. I keep having to add extra frames every couple of seconds to get it to resync, so it seems like the script's definition of a frame is slightly shorter than what the game considers a frame. How do the scripts determine how many nanoseconds a frame is, and are there any adjustments I can make to line it up better?
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
This looks amazing. I was just working on something where I need to change the starting RTC and re-sync to deal with the new RNG - this will massively improve that process. I'll try it out when I have time and let you know how it goes.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Pokota wrote:
Question: Was it wise to skip the ending text the way you did? It's a neat thing you can do but in the notes you wrote that you avoided touching the ending trigger...
The game is considered by speedrunners to be beaten after level 19, the last level is basically a cutscene that they accidentally let you control. The same thing was done in the first episode.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Ferret Warlord wrote:
Fun little run for a fun little game. However, I personally feel slight iffy about the difficulty choice. I agree that hard would make the game too tedious for many reasons - you also forgot to mention that the default weapon is nerfed - but easy is, well, easy. I think Normal would be a good compromise. Also, are you aware of the secret moves Snake has at his disposal? These include brief invulnerability, launching some small fireballs, and firing off a huge plasma bolt.I wonder if any of those could save some time.
I was under the impression that we should go with either the fastest difficulty or the hardest, but I'll keep that feedback in mind. I know about the secret moves, and I talked to Mothrayas about whether they would be permissible before I started the run. We leaned towards calling them cheats because they certainly resemble them (obscure button combinations giving you an advantage), despite not being listed in the cheats section in the hint manual. I know a couple of places they would save a little time, but they wouldn't make too much of a difference.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Yeah, it looks like looping the frame advance code doesn't work. I think your best bet is to do this:
jpcrr.vretrace_start_trap();
jpcrr.vretrace_end_trap();
jpcrr.timed_trap(x*y);
jpcrr.pc_start();
This code will advance time by x*y ns, where x should be the number of nanoseconds per frame (will depend on your game's FPS) and y is the number of frames you want to advance.
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
Looking at extramenu, it looks like it's just this sequence of commands:
jpcrr.vretrace_start_trap(is_on);
jpcrr.vretrace_end_trap(0);
jpcrr.timed_trap();
jpcrr.pc_start();
Experienced Forum User, Published Author, Reviewer, Expert player (2393)
Joined: 5/21/2013
Posts: 414
There's a full list of lua functions available here: http://repo.or.cz/w/jpcrr.git/blob/refs/heads/r11-maint:/datafiles/luakernel There's really never been a guide for lua scripting in JPC-rr, what I did to learn was just look at one of Ilari's scripts and go from there. Looking at this one should help you: http://tasvideos.org/userfiles/info/28795717603126010 The "lock" section of the while loop is for the HUD and runs every frame, and the "message" section is for typing commands into the lua window. Also, the extramenu file in the datafiles folder lists all the menu commands in JPC-rr and should help you figure out the arguments for the jpcrr.sendevent function, which is what you'll need to do keyboard and mouse commands. Look here for a full list of numbers to use with KEYEDGE: http://tasvideos.org/EmulatorResources/JPC/KeyNumbers.html
1 2
8 9 10
16 17