Active player (422)
Joined: 9/27/2004
Posts: 650
Location: Canada
Yes. Hydlide. Something has come to my attention regarding the boss fight in the published movie: it's slow as hell. Apparently, it is possible to take down the final boss in one salvo, reducing the amount of time waiting for health to regenerate drastically. I'm under the impression that the added defence you get from the sheild makes this possible, and I skipped the sheild in the published run because I didn't notice a difference in the old tests I did. However, to truly improve the run properly, I would need the memory address(es) of the chest that holds the key. You see, it randomly puts the key into one of 8 chests. I managed to manipulate it into the second closest chest in the published run through trial and error, but it was a serious pain in the ass, and I'd prefer to be able to look at a number and know right away if I have it in the BEST spot. (knowing what trees the two tree fairies are in would help too, but isn't critical, as manipulating the first one takes too long to be useful and the second is in a "moving forest", so in stead it can be manipulated into walking towards you). Anyway, the point is finding the address(es) for the key chests is beyond my skill. I managed to find addresses for things like the chest graphics, but no luck finding anything useful. So I am asking you, TASvideos, for help. If you could point me in the right direction of how to go about finding what I need or if better yet (for me) someone could figure it out for my sorry ass, it would be much appreciated. As far as I know, the only things that affect the placemet of the key are what frame you start the game, and when/if you save and reload. I have found addresses for HP, EXP, MP, and all that lovely stuff. I'm going to spend some time reevaluating my leveling up strategy by comparing exciting things like experience/kill and enemy regeneration rates. Test if it is indeed the sheild that allows you to kill the boss in the quicker method. Then, much to your excitement I'm sure, it's time for me to get to work on an improvement.
Active player (422)
Joined: 9/27/2004
Posts: 650
Location: Canada
Hello again. So I've been running some tests lately, and here's an infodump about an improvement: Regardng the save/load used to manipulate the chest that contains the KEY; there is one slightly closer chest. I am still uncertain if there is a useful frame on which to save/load to get the KEY into that chest. Initial tests indicate that if you pause briefly while walking across terrain that normally damages you, you will be damaged less than if you simply hold a direction down-- possibly taking no damage at all if used correctly? The overall item collection route should be the same as the published run, with the inclusion of the shield. It's gotten by killing 3 LADYAMs in the same cave where the RING is. As few enemies before getting both of these items should be confronted as possible, since attacking and defending slow you down (I believe it costs 2 frames). All level building to get the WAVE spell should be done on EELs. Even though they take 7 hits at level 1 with the sword, they net a whopping 50 EXP compared with the HYPERs, which give 10 (3 hits). At level 2, EELs take 5 hits, and still give 50 EXP. At level 5 (the level on which you learn WAVE), EELs take 3 hits and give 5 EXP. If two levels are gained, you won't have to wait for your MP to recharge to cast FIRE on the bust outside the castle. I'm not sure if the EEL regeneration rate is sufficient to make this a better option or not. It may be beneficial to level up to the maximum level before facing the dragon. Wait until your HP is full before attacking VARALYS, use defend mode until your HP is almost empty, switch to attack for one hit, let the medicine fill you up, then finish him on defend mode. With the shield, this should kill him in 1 attack round. And of course, improve on the enemy manipulation. Useful monster info (at level 1, equipped with sword): SLIME - 1 hit, 1 EXP ROPER - 2 hits, 2 EXP KOBOLD - 1 hit, 1 EXP WORM - 4 hits, 5 EXP ZOMBIE - 3 hits, 2 EXP WISP - 3 hits, 7 EXP LADYAM - 2 hits, 5 EXP GOLDAM - 3 hits, 5 EXP HYPER - 3 hits, 10 EXP EEL (level 1) - 7 hits, 50 EXP (level 2) - 5 hits, 50 EXP (level 3) - 4 hits, 10 EXP (level 4) - 3 hits, 10 EXP Ideal leveling strategy: LADYAM (x3) = 15 EXP GOLDAM (x3) = 15 EXP EEL (x21) = 370 EXP then max out on BLACKAMs and SKELETONs Useful addresses: x037 Jim's position x036 Jim's position x038 health x039 strength x03a experience x03b magic x03c level Game FAQs Overworld map Game FAQs Underworld map Route: Set speed to high Get fairy 1 Get sword (save/load) Get pot Get key Get jewel Get shield! (kill 3 ladyam) Get ring (kill 3 goldam) Get fairy 2 Level on eels for the wave spell Kill wizards/get fairy 3 Burn tree Level on blackam/skeletons/break grave Kill dragon Get ruby Level to max if needed Kill boss (1 round) Get laid I am uncertain of what the overall savings would be over the published run, but it should be fairly substantial even with just the shield and EEL leveling strategy. My only question left is, who wants to make this run? I sure don't.
Post subject: Surprislyde!
Active player (423)
Joined: 9/7/2007
Posts: 329
Inzult wrote:
My only question left is, who wants to make this run? I sure don't.
Well, apparently I do. I have been working with Feasel, who is speedrunning this game (sub 20 will happen!), and we have been coming up with new strategies that will vastly improve the run (no time estimate yet), including a level 7 (or possibly less) Varalys kill, which means way less grinding. I have been doing lots of memory watching, and have found many useful memory addresses that explain how things work, and I am creating a lua script. We also noticed that there is an easter egg that causes temporary infinite magic. This means Wave can be used before level 5. It is unlikely that this will be useful for a normal run due to a lengthy "cutscene" that takes about 16.6 seconds, and also because a normal run will have to level anyways in order to beat Dragon and Varalys, which makes the easter egg a bit out of the way. There is another way to get the infinite magic easter egg by killing 3 Worms with one Wave magic, but since it requires Wave, that method is not useful for a run that rarely uses magic. While searching for strategies, Feasel found a TAS on nicovideo that beats the game in a little over 5 minutes using an easter egg password that causes permanent infinite health, but this easter egg seems to work only on the J version, Hydlide Special. The easter egg requires a setup which takes about 50 seconds, and is somewhat similar to the published MMX walkathon. After that, the game is very fast because health is not a concern. That TAS levels to 5 to get wave. However, adding the infinite magic easter egg means that no leveling is required at all to beat the game, so I am guessing that a TAS that uses both easter eggs will be closer to 4 minutes, with about a third of it being setup/cutscene for the 2 easter eggs. Because this makes the gameplay very different, and it also uses different versions, Feasel and I think there should be 2 branches for Hydlide to show off the game to its fullest. The faster branch using the J version is the "easter egg" branch, which would show off both easter eggs, making the game trivial and removes any leveling. The other branch using the U version is the one that would obsolete the current run; it plays the game without "cheating" (the infinite magic easter egg is skipped for the aforementioned reasons) so the game is played normally. I know this game is hated, and some would say "Two categories is two too many", but that needs to be put aside. I would like a judge's ruling so this doesn't have to be debated when a run is submitted. Edit: I did a quick and dirty test and came up with a time of around 4.25 minutes. With better play and luck manipulation, sub 4 could be possible for "easter egg"!
Active player (423)
Joined: 9/7/2007
Posts: 329
I did a TAS based on the best starting RNG that I have so far, and beat the game with a time of 3:59.27. The 48 seconds before the start is necessary for the infinite HP easter egg. This also means that the actual game play (and music) is less than three and a quarter minutes. This is improvable by a second or perhaps 2 because I am still researching how to get a better fairy 1 from the start, and hopefully the real TAS will have better Varalys luck. I was correct about a sub 4 TAS! http://www.youtube.com/watch?v=V2hgO71aCrs
Active player (422)
Joined: 9/27/2004
Posts: 650
Location: Canada
It's awesome to finally see the easter egg version of the run. It really whets the appetite for a U version!
Editor, Skilled player (1941)
Joined: 6/15/2005
Posts: 3247
dunnius reported on IRC that the RNG in this game is at 0x2E-0x2F (0x2C-0x2D for J version). In fact, using FCEUX's debugger, I figured out that the formula is as follows:
x := 9*x + 97 (mod 65536)
where x is 16-bit value at 0x2E (big endian). This makes it a linear congruential generator with period 65536. The routine that does this is:
00:968E:85 32     STA $0032 = #$81
00:9690:E6 32     INC $0032 = #$81
00:9692:A5 2E     LDA $002E = #$92
00:9694:85 30     STA $0030 = #$92
00:9696:A5 2F     LDA $002F = #$C9
00:9698:85 31     STA $0031 = #$C9
00:969A:06 2F     ASL $002F = #$C9
00:969C:26 2E     ROL $002E = #$92
00:969E:06 2F     ASL $002F = #$C9
00:96A0:26 2E     ROL $002E = #$92
00:96A2:06 2F     ASL $002F = #$C9
00:96A4:26 2E     ROL $002E = #$92
00:96A6:A5 2F     LDA $002F = #$C9
00:96A8:18        CLC
00:96A9:65 31     ADC $0031 = #$C9
00:96AB:85 2F     STA $002F = #$C9
00:96AD:A5 2E     LDA $002E = #$92
00:96AF:65 30     ADC $0030 = #$92
00:96B1:85 2E     STA $002E = #$92
00:96B3:A5 2F     LDA $002F = #$C9
00:96B5:18        CLC
00:96B6:69 61     ADC #$61
00:96B8:85 2F     STA $002F = #$C9
00:96BA:A5 2E     LDA $002E = #$92
00:96BC:69 00     ADC #$00
00:96BE:85 2E     STA $002E = #$92
00:96C0:C5 32     CMP $0032 = #$81
00:96C2:90 05     BCC $96C9
00:96C4:E5 32     SBC $0032 = #$81
00:96C6:4C C0 96  JMP $96C0
00:96C9:60        RTS
To find the routines, just set read/write breakpoints on the RNG address. Of course it depends on the emulator.
Active player (423)
Joined: 9/7/2007
Posts: 329
Very nice! I hope to be able to use this to predict enemy spawns and movements, which has its greatest need for eel grinding. But this may also be useful to figure out starting RNG values, which is what I am currently working on. This beats reading out of my huge table of 65536 lines.