Post subject: Indiana Jones and the Last Crusade (Taito)
MESHUGGAH
Other
Skilled player (1884)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
I already made a nearly 100% optimized run for this game, however the RNG depends on which frame I start the game which affects "enemy spawn priority", the layout of "Find the Holy Grail" and the Holy Grail position at the last screen. Here's 2 WIP (I actually have 7): http://dehacked.2y.net/microstorage.php/info/1766927144/IJLC_0.fm2 - 0 frame wait at title http://dehacked.2y.net/microstorage.php/info/462308100/IJLC_1.fm2 - 1 frame wait at title Waiting for 2, 3, 4, 5, 6 frames at the title screen doesn't change the has the same layout (but enemies). Waiting for 10 frames changes the layout. I'm not familiar with the FCEUX's NES debugger, the only thing I came up is 0022 and 0024 has something to do with this. Also I will hex edit some entertaining for the boring parts. edit: and hex edit the marcus part before the holy grail So if anyone has an idea or helps me to understand the debugger, I would appreciate it.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
http://fceux.com/web/fceux-2.0.2.htm FAQ / Guides -> Debugger Usage (Intermediate)
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Skilled player (1882)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
I have a finished any% run of this game (basically it's an optimized version of the SDA run) I made some time ago. I couldn't figure out how to manipulate the last level, and since I think the SDA run is faster on this level I didn't bother posting this movie (I suspected it depended on the frame the game started, but I didn't bother to check). Anyway, my full run is 355 frames faster on level 1, so you might want to check it out: http://dehacked.2y.net/microstorage.php/info/64723888/Indiana%20Jones%20and%20the%20Last%20Crusade%20%28U%29%20%28Taito%29.fm2 Here are my RAM addresses:
0664 X|pos
003C Screen|pos
036C HP
067E Enemy|HP
068A Enemy|X|pos
41 Kick|on|2
662 Power|kick|on|8
392 Enemy|app.|in
336 Mobs|left
46 Press|on|27|and
3 press|on|32
68 select|on|0
| run|on|117
| dead|on|118
I don't have much interest in this game now, but I can of course answer any questions you might have about my TAS.
MESHUGGAH
Other
Skilled player (1884)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Thank you both of you! Now I'm debugging and improving and also smack myself for saying "nearly 100% optimized" to my WIP.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Editor, Emulator Coder, Expert player (2101)
Joined: 5/22/2007
Posts: 1134
Location: Glitchvania
I've got the impression that it was possible to glitched through some of the prison walls from the right side. I haven't been able to reproduce that, though. EDIT: And if memory serves, there were glitched warp-doors outside of the boundaries of the prision level, which could be used as shortcuts.
<klmz> it reminds me of that people used to keep quoting adelikat's IRC statements in the old good days <adelikat> no doubt <adelikat> klmz, they still do
MESHUGGAH
Other
Skilled player (1884)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
klmz wrote:
I've got the impression that it was possible to glitched through some of the prison walls from the right side. I haven't been able to reproduce that, though. EDIT: And if memory serves, there were glitched warp-doors outside of the boundaries of the prision level, which could be used as shortcuts.
I didn't even thought about OoB tricks. Here's a list I found out and possibly Randil uses too: Cancelling whip animation - you can switch to whip while climbing ladders Cancelling enemy - start rolling and cancel it by letting go of "down" Manipulating enemy to duck and go trough him - press A within ~70 pixels of the incoming/nearby enemy. Cancelling stun - press U+B+L+R. You will get but won't switch animation. edit: and Fast whipping: depending on situation, you can end whipping faster (after damage apply) by performing another action, for example: pressing D 2 frames before actual "whip hit sprite" at a ladder. Also I'm close to understand the debugged informations. 001F and 001E that must be manipulated mostly at the title screen. 01E8~01FE only controls enemy spawn order and initial state.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Skilled player (1305)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
Both these runs are using New PPU. Is there any reason for that? Looks like a pretty good WIP.
MESHUGGAH
Other
Skilled player (1884)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Sonikkustar wrote:
Both these runs are using New PPU. Is there any reason for that? Looks like a pretty good WIP.
I wrote a lengthy comment but I suddenly pressed backspace because I'm drunk. Pure informations: New PPU used because I've hadn't any reason to don't use it. The WIP. I improved it with ~2 frames on the first level by killing already spawned enemies instead of running away from them. I will upload next WIP when I fully understand the debugged Holy Grail stage layout generation. If I'm correct, than I won't need to wait a lot of time at the title screen which is good. The only thing I consider is the ammount of "sideways" (moving left or right rather than rushing forward). edit: some debugged things. I used Randil WIP since it's uses the "fast RNG" (starting the game as soon as possible) while my "faster 1st level" used another RNG by mistake. Initial values 0x001E $55 0x001F $AA At title screen - Waiting N frames calls the RNG subroutine for N*2 times. (starting the game as soon as possible: N = 0 --> 2 RNG calls) Cross of Coronado - At each enemy (re)spawn, the RNG called for 1 time (17 times at Randil WIP) (notice: Find Dad stage number of RNG calls depends on the actual route) (notice: warp means a "new stage" door/stair, when the screen goes black) Find Dad - 2 + 6 RNG calls @ black screen before starting the stage Entering 1st warp (door): 4 + 7 Entering 2nd warp (door): 4 + 9 Entering 3rd warp (door): 5 + 11 Entering 4th warp (door): 4 + 7 Entering 5th warp (stair): 11 Entering 6th warp (door): 1 + 7 There's no RNG subroutine call at Find Marcus stage. At this point, the RNG called for 97 times. After selecting Holy Grail and screen goes black. The RNG calls once, wait, then called MANY-MANY times. 0x0080 ~ 0x0088: generating the JEHOVAJEHOVAJEHOVA path. 0x0630: the end tile of the Holy Grail stage. Generated as $DC79, AND 0x07, CMP 0x07, STA. Initial values (RNG-free) *not complete* 0x0080 = 13 0x0081 = 0A 0x0083 = 00 0x0087 = 01 0x0084 = 02 0x0086 = 00 $8BB9 subroutine - generating the JEHOVA path *uploading the simplified code later* End of Holy Grail map - 19 RNG cycle. 3 RNG cycle after first move. 3 RNG cycle after 2 more moves (3rd move). $DC79 RNG subroutine translated into C#: http://pastie.org/2534152
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
MESHUGGAH
Other
Skilled player (1884)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Thanks to klmz, I tried to OoB and it's really exists/works. Generally you go outside of the map by holding L+R until you pass through the invisible barrier then simply go left. You can go out the same way. This only works on the left side and only at 1st rows. Here's the route (read the VII. section @ http://www.gamefaqs.com/nes/587354-indiana-jones-and-the-last-crusade-taito/faqs/31584 for legends) For example: M - q - ^, do the OoB trick and press up: Slice 2/1st row/very left side. press up --> Slice 3/1st row/very left side. press up --> Slice 4/1st row/very left side. press up --> Slice 5/1st row/very left side. So I'm currently searching for fastest route with the use of OoB, I hope it saves time. edit: Randil's WIP finished stage 2 @ 5308 while using OoB I finish it @ 5619 frames due too many runnings to the right (at Slice 5). Also the RNG subroutine called different times than the previous route. Using OoB until Slice 4 and going through ZZ costs +27 frames.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
MESHUGGAH
Other
Skilled player (1884)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Since our team finished the DTC4 submission, I have time to handle this. I made a game resource page Wiki: GameResources/NES/IndianaJonesLastCrusade to avoid editing posts for multiple times. Randil's WIP has 16 sideways on the holy grail map layout. Waiting for 4 frames at the title screen (and reoptimizing the syncs coming from different enemy spawn (very few frames lost)) changes the holy grail map layout into 11 sideways. Comparison at holy grail map layout screen Randil's WIP: 7644 frames / Randil's WIP 4 frame wait: 7665 frames (+21 frames) edit: 97 RNG calls, 1 + 2001 for map generation / 106 RNG calls, 1 + 1974 for map generation. However I will debug the $8BB9, so I can search the best RNG for minimizing the number of sideways. edit: no need for debug, I made a lua script that shows the RNG calls and dumps the RNG numbers and another to make a screenshot with these values (thanks to Wiki: Kirkq's generous help!!). The state I used for the screenshot dumping was 7595 frames into Randil's WIP. After some manual screenshot watching (took me some minutes): there's 9 layout * 6 ending tile = 54 possible maps can be generated by the game depending on which RNG it started. The ending tiles are always in the same order (heart, something, maybe an a, omega, bird, X, cup). We aiming for the fewest sideways. Now finding the fastest one in progress. edit: Number of sideways of the maps: 15/12/11/16/7/11/11/11/4. No need to mention, we go for Map 9 which ends on a bird, which needs 90 18 more rng cycles than Randil's WIP. This sounds good, because we can adapt this to the title screen. edit: the RNG cycles drives me crazy. Applying wait on title screen (to advance the rng cycle) changes the increments @ stage 2 Find Dad. This means, simply just waiting to get the exact 116 calls is "impossible" (without wasting many time). Of course it's possible with doing some route changes. Here's the most easiest (notice I used Randil's WIP): http://dehacked.2y.net/microstorage.php/info/98946327/FINALTAS.fm2 Also note that 116 rng calls is the most close for the "fastest route" (the earlier one is needs too few calls, the next one needs more calls). Also there's a faster route at find dad which I didn't include this time (depending actual RNG, the faster route changes the RNG calls). I will throw out an update after I came out with the super optimized godlike TAS.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
XTREMAL93
He/Him
Active player (340)
Joined: 1/6/2012
Posts: 576
Location: Azerbaijan, Baku
What about Ubi Soft version of this game? Is it TASable?
MESHUGGAH
Other
Skilled player (1884)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
I assume it's TASable. Note that this game and the Ubisoft one are two completely differently developed games. Similar levels but totally different engine and playthrough.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Joined: 5/2/2015
Posts: 95
I imagine it would be pretty straightforward to TAS, unfortunately the bosses take forever to fight. https://www.youtube.com/watch?v=5OiQvQ8Abjc
Post subject: Indiana Jones and the Last Crusade (UBI Soft)
XTREMAL93
He/Him
Active player (340)
Joined: 1/6/2012
Posts: 576
Location: Azerbaijan, Baku