Posts for Omnigamer


1 2
11 12
Experienced Forum User, Published Author, Player (33)
Joined: 2/16/2012
Posts: 282
Looking good so far; don't have too much to add. It will be important to remember that the projectile flame acts as both fire and a kick for later levels, as it can make getting through bones and some other parts much quicker. It also doesn't do as much damage against some bosses and enemies though, so be careful. Also be aware that during the boss stages, you probably will be forced to go out of your way to get the flame upgrades to save time. As a rule of thumb the damage you do to bosses doubles with each powerup, starting at the second or third. The only stage where I found that you can gain time by skipping a powerup was Stage 8, where it saves ~1000 frames on average (probably much more with some actual experimentation). One final thing that I didn't spend much time investigating is the vines in stages 2 and 9. I aim for the best setup to a full swing, but I didn't check which jumps you could make with swings that were less than full.
Experienced Forum User, Published Author, Player (33)
Joined: 2/16/2012
Posts: 282
Hello everybody, I don't mean to Necro this thread but I've been working on a real-time speedrun for Hagane and I've found some potential improvements for the TAS. Most of the improvements I've found have to do with some creative uses of bombs. Since I'm working on a real-time run, bombs are valuable because it allows me to still do damage while I'm tumbling, or allow me to get some of the quick kills that would otherwise require perfect execution (Stage 2 Boss). I understand in general it costs 26-30 frames of lag simply to use a bomb, but considering that they're full screen and can be used at any moment they have advantages in a couple other areas as well. The biggest example of this is Shura-Oh (Stage 5 Boss). By delaying the tumble and timing a bomb right, I can get a 1-cycle kill fairly consistently in real time. It saves about 1000 frames compared to a 2-cycle kill. I posted a video of it in action: Link to video Another example is Amano-Ikazuchi, where there are times when I can get a single bomb to hit both the top and bottom heads. Again, these are real-time strats, but I don't think the frame count would be too far off between the two, and it might open some other potential routes for dealing with him. ------------ Now for some other issues. Most of these would be somewhat helpful for a TAS, but are questions mainly for my interest in figuring out real-time routes :p First thing is determining how drops are determined in this game. I've done a lot of searching and checking, but I can't seem to find addresses that will force certain drops. The only thing that always changes when you kill an enemy is your score (both sets of values, in 7E051D-F and 7E0520-2) and a "kill counter" of sorts in 7EAB0C. The kill counter is on a very short cycle, with only 10 or so values. As best as I can tell it isn't used for anything related to the drops. It is related to the order you kill enemies though: I can get consistent drops in stage 1-1 by killing the same enemies each time. At worst I can try to brute-force a proper route to get blue flames/bombs in 1-1, but I'm trying to avoid that if at all possible. The second thing is also related to the RNG: I need to find ways to manipulate the position of the 4-2 miniboss and a consistent manipulation for Shura-Oh. I haven't investigated the 4-2 miniboss yet, but it seems like the position for Shura-Oh's core spawn (and his attacks, to an extent) is not entirely manipulated by your relative position. Going through 5-5 in different ways will result in different core patterns, and occasionally different attack choices. The problem is that even with the same route through the stage and killing the same enemies, his pattern is not guaranteed to be the same. This is really frustrating since I have consistent quick kill strats, but they rely entirely on a correct core spawn point. I haven't fully investigated it yet, but the address determining his attacks and core spawn point are stored in 7E1044. So yeah. Any insight you guys have for these issues would be greatly appreciated :D EDIT: I've found the RNG. Drops and some boss patterns are sourced from 7E00AA-B. The code for the process is below. I haven't looked into exactly what it uses to determine which drops come from what values, but it's useful to set up at least.
c101e1 jsl $c0c434   [c0c434] A:0007 X:0002 Y:0000 S:01e4 D:1180 DB:83 nvmxdiZC V:  2
c0c434 php                    A:0007 X:0002 Y:0000 S:01e1 D:1180 DB:83 nvmxdiZC V:  2
c0c435 phd                    A:0007 X:0002 Y:0000 S:01e0 D:1180 DB:83 nvmxdiZC V:  2
c0c436 sep #$20               A:0007 X:0002 Y:0000 S:01de D:1180 DB:83 nvmxdiZC V:  2
c0c438 lda #$00               A:0007 X:0002 Y:0000 S:01de D:1180 DB:83 nvMxdiZC V:  2
c0c43a xba                    A:0000 X:0002 Y:0000 S:01de D:1180 DB:83 nvMxdiZC V:  2
c0c43b lda #$00               A:0000 X:0002 Y:0000 S:01de D:1180 DB:83 nvMxdiZC V:  2
c0c43d tcd                    A:0000 X:0002 Y:0000 S:01de D:1180 DB:83 nvMxdiZC V:  2
c0c43e lda $aa       [0000aa] A:0000 X:0002 Y:0000 S:01de D:0000 DB:83 nvMxdiZC V:  2
c0c440 lsr a                  A:00b0 X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizC V:  2
c0c441 lsr a                  A:0058 X:0002 Y:0000 S:01de D:0000 DB:83 nvMxdizc V:  2
c0c442 lsr a                  A:002c X:0002 Y:0000 S:01de D:0000 DB:83 nvMxdizc V:  2
c0c443 lsr a                  A:0016 X:0002 Y:0000 S:01de D:0000 DB:83 nvMxdizc V:  2
c0c444 sta $28       [000028] A:000b X:0002 Y:0000 S:01de D:0000 DB:83 nvMxdizc V:  2
c0c446 lda $ab       [0000ab] A:000b X:0002 Y:0000 S:01de D:0000 DB:83 nvMxdizc V:  3
c0c448 asl a                  A:0067 X:0002 Y:0000 S:01de D:0000 DB:83 nvMxdizc V:  3
c0c449 asl a                  A:00ce X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizc V:  3
c0c44a asl a                  A:009c X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizC V:  3
c0c44b asl a                  A:0038 X:0002 Y:0000 S:01de D:0000 DB:83 nvMxdizC V:  3
c0c44c ora $28       [000028] A:0070 X:0002 Y:0000 S:01de D:0000 DB:83 nvMxdizc V:  3
c0c44e eor #$ff               A:007b X:0002 Y:0000 S:01de D:0000 DB:83 nvMxdizc V:  3
c0c450 sta $28       [000028] A:0084 X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizc V:  3
c0c452 lda $aa       [0000aa] A:0084 X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizc V:  3
c0c454 ora $ab       [0000ab] A:00b0 X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizc V:  3
c0c456 bne $c45e     [c0c45e] A:00f7 X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizc V:  3
c0c45e lda $aa       [0000aa] A:00f7 X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizc V:  3
c0c460 sta $ab       [0000ab] A:00b0 X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizc V:  3
c0c462 clc                    A:00b0 X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizc V:  3
c0c463 adc $28       [000028] A:00b0 X:0002 Y:0000 S:01de D:0000 DB:83 NvMxdizc V:  3
c0c465 sta $aa       [0000aa] A:0034 X:0002 Y:0000 S:01de D:0000 DB:83 nVMxdizC V:  3
c0c467 lda $28       [000028] A:0034 X:0002 Y:0000 S:01de D:0000 DB:83 nVMxdizC V:  3
c0c469 pld                    A:0084 X:0002 Y:0000 S:01de D:0000 DB:83 NVMxdizC V:  3
c0c46a plp                    A:0084 X:0002 Y:0000 S:01e0 D:1180 DB:83 nVMxdizC V:  3
c0c46b rtl                    A:0084 X:0002 Y:0000 S:01e1 D:1180 DB:83 nvmxdiZC V:  3
Experienced Forum User, Published Author, Player (33)
Joined: 2/16/2012
Posts: 282
To my knowledge, the different difficulties affect several things: -Enemy HP -Your HP (or enemy damages) -Number of checkpoints (less for higher difficulties) -More enemies The main reason I did it on Easy is that Normal and Hard both spawn enemies in terrible locations for proceeding quickly, namely the Pterosaurs. It wouldn't be as much of an issue in a TAS since you can more reliably kill them/dodge their projectiles, but the amount of things that need to be dodged from level-to-level increases substantially with other difficulties. Toss that with the fact that you are not able to one-shot most enemies, and Easy was the most practical difficulty to do the run with since I could damage boost through most of them.
Experienced Forum User, Published Author, Player (33)
Joined: 2/16/2012
Posts: 282
I tried looking into those values a bit as well, but I wasn't able to find anything useful. I believe each enemy has its own unique timer of sorts that is used for the drops; I set up next to one of the eyeball monsters that produces other eyeballs and frame advanced, recording 70 odd-some drops. A cycle was not present within at least that 70, unfortunately, but I did notice some interesting things. When killed, the eyeballs spawned by the monster would produce the exact same drop as the eyeball monster if it were killed during the previous frame. If the two are killed simultaneously (take damage/explode on the same frame) then they will produce different items. So it's still hard to say. At the very least, finding a cycle would be helpful since you could determine which parts would be best to aim for, but it's hard to find a location to test this fully.
Experienced Forum User, Published Author, Player (33)
Joined: 2/16/2012
Posts: 282
Hello, good to see somebody looking into this game on the TAS side of things. I did a real-time speedrun of this game (currently in the submission queue at SDA), and I still have my notes from when I was researching the game. My route was reasonable barring any tricky skips, but I don't imagine the TAS will be much different without finding any clipping or superjump bugs. Below are some boss values:
Damage:

Sethron 1: 1/4 does 1, 1/2 does 2-3, 3/4 fire does 4 per hit, full does 8, 76 HP
Pterosaur: 75 HP, full flame does 20
Zombie Ankly: 65, kick does 1, bones do 3-12 with full flame; probably same as number of frames connecting with skull
Super Tumor: 72 HP, full flame does 5-6, 3/4 does 2-3, 1/2 does 1-2. Full roar does 18 dmg.
Hell Hive: 65 HP, full does 3-4 per hit, on second volley roar can hit all and do 21 total damage, and kills top left
Last boss has 64 HP, full flame does 5, roar does 8

Boss/Lifebar HP stored in 7E1EED, current value shown in 7E1EE6
7E1E4A - The level of fire. 2 = 1 powerup, 4 = 2 powerups, 6 = 3 powerups, 8 = full
Note that their may be an alternate HP location, as I'm pretty sure those values only refer to the life bar that appears on-screen. It seems silly to program it with the flame doing different amounts of damage on every enemy/boss, so I imagine there are some other addresses being used here and there. A useful trick for stages 3 and 8 is a boosted jump coming out of the tubes. In order to perform it, you need to land prior to entering (being in the air will result in a tumble motion when you come out) and then just before leaving the tube you have a 2 frame window to jump. This allows you to keep your momentum throughout the jump, and allows for a couple of fast sections.
Experienced Forum User, Published Author, Player (33)
Joined: 2/16/2012
Posts: 282
Thanks for checking those out then. I tried the flying stuff a bit for myself after I said it (in real-time) but the hitboxes make more sense to me now. Either Sky himself has a conical hitbox or the hitbox on gems/mines grow as they get closer to the screen (more likely). In any case, good work, I wasn't able to find any other parts that looked curious :)
Experienced Forum User, Published Author, Player (33)
Joined: 2/16/2012
Posts: 282
Great job! I watched through it this afternoon, but I will take a look again soon to pick up on anything I missed. A couple things I remember off the top of my head: -In the beginning stage, I'm not sure if it's faster or slower to jump before that second hit or not. I'm not entirely sure, but I feel like the stun frames end as soon as you land so you can get back to ground-based quick zips sooner. I think there's still some momentum effects from doing a turn while running as well, but I'm not sure how it all plays out framewise. -I feel like there could be a slightly faster route using the middle path on the Sand River, but again I'm not certain in terms of frame-for-frame tradeoffs. -For both of the flying mini-games I think you can position yourself lower and still get hit at the same time by the mines. That should save a few frames, I think. I may steal some of those magic pickup points for use in my own regular runs ;)
1 2
11 12