Posts for Desbreko

Experienced Forum User
Joined: 12/1/2008
Posts: 9
Yeah, if you watch closely, Mothula can never actually fly above the spike traps on its own. The only time its shadow (the space that Mothula actually occupies on the floor) ever overlaps with a spike trap is when one of the traps is moving across the floor. If a trap is stationary, Mothula can't pass over it. Also, I'd think it would be necessary for Mothula to be on the same plane as the traps just for Link to be able to fight it. In every other instance of things being at different elevations that I know of, Link can't directly interact with objects on the other plane.
Experienced Forum User
Joined: 12/1/2008
Posts: 9
Assassin wrote:
ok.. i'm still curious about this:
me wrote:
how close is Mothula to the spiked block (the one he eventually hits) when Link first unleashes the spin attack?
(or if it's not a spin attack, then when Link first swings his sword.) i suspect that if Mothula is very close to the block to start, then it hitting the block will not only cancel Mothula's invincibility timer, but also cancel the damage it was going to receive from the strike. did you observe this at all?
I don't know offhand how close to the spikes Mothula starts out. You'd have to check the SMV, or maybe Tompa knows. But I think it can vary how far Mothula needs to be, depending on how much time is left in the current damage queue cycle. And yeah, if Mothula runs into the spikes immediately after being hit, the damage will get canceled. You can see that happen all the time while fighting Mothula in real-time. It's just that, in a tool-assisted environment, you can avoid letting that happen.
Experienced Forum User
Joined: 12/1/2008
Posts: 9
Assassin wrote:
i don't follow how this works in the player's favor. are you saying that you somehow get Mothula to hit the spiked block *after* the queued damage is inflicted (and thus it can't be overwritten), but *before* his invincibility timer wears down? that would require some crazy precision, if it's even possible.
That's basically it, yeah. You hit Mothula, it takes damage, bounces off the spike traps and cancels the invincibility, and ends up right back on top of your sword to get hit again. It does require really fine precision but frame advance and re-records make it possible.
Experienced Forum User
Joined: 12/1/2008
Posts: 9
xPi wrote:
msgboxflag = 0
snes9x.speedmode("normal")
while not movie.mode() do
	gui.text(8,40,"Waiting for movie" )
	snes9x.frameadvance()
end
function msgbox()
	msgboxflag = 1
end
function timerchange()
	if msgboxflag == 1 then
		snes9x.speedmode("normal")
		msgboxflag = 0
	end
end
memory.register(0x7E1C1F,msgbox)
memory.register(0x7E1842,timerchange)
while movie.mode() do
	elevator = memory.readword(0x7E0E18)
	mode = memory.readbyte(0x7E0998)
	if mode == 8 and elevator == 0 and msgboxflag == 0 then
		snes9x.speedmode("normal")
	else
		snes9x.speedmode("maximum")
	end
	if mode >= 12 and mode <18>= 4 and mode <5>= 20 and mode <= 27 then snes9x.speedmode("normal") end
	-- 12-18: pause screens. change 12 to 11 if you want door transitions
	-- 4-5:   save data and option screens
	-- 20-27: game over screens. change 27 to 26 to exclude reserve tank
	snes9x.frameadvance()
end
snes9x.speedmode("normal") 
snes9x.pause()
Is it possible to keep the audio synced when AVI recording with this script running? I've been trying it out with some of my Super Metroid SMV's and everything looks fine in Snes9x, but when I view the AVI recording the audio in it doesn't get fast-forwarded along with the video. Edit: Okay, so I was trying to get this to work and found that the audio desyncs in Snes9x 1.43 v15.3, in 1.43 v16 svn11, and in 1.51 v5.2, yet it doesn't in the 1.43 v11 beta15 versions that are included in the snes9x-lua-v0.05.7z and snes9x-lua-v0.06.7z archives linked in the first post.
Experienced Forum User
Joined: 12/1/2008
Posts: 9
I have an idea but I'm not sure if it'll work. I haven't been able to pull it off because the positioning has to be incredibly precise to even hit Mothula this way rather than getting hit yourself. I've gotten two good hits in but could never get Mothula to move the right way for the third and fourth... Anyway, could you hold your sword out to the left or right but stand diagonally down from Mothula so that you'd hit it with the edge of the sword, instead of the tip, and still knock it upwards into the spike traps for the first three hits, then poke it straight from the side for the fourth hit? It seems like you might be able to get the first three hits at the same speed that way and then only have to delay the fourth hit a few frames to keep Mothula from being too high when it dies.
Experienced Forum User
Joined: 12/1/2008
Posts: 9
Tompa: I don't know how to do the trick that makes the sword cause full damage while holding it out rather than swinging it, so I haven't been able to confirm for myself whether it can be done faster. But by staying a little farther up towards the top of the room than in your WIP, so that Mothula got bounced back into my sword immediately after having its invincibility canceled on the spike traps, I've managed to score four hits in quick succession. flagitious: Yeah, I know the Fire Rod wouldn't be useful in the TAS, I was just using it for my testing of the invincibility timer. You'd obviously want to use the sword in the actual run since it does more damage. And three-hit combos are possible with the Fire Rod, but the only time I've managed it is when I've pinned Mothula into a corner while there are also some other moving spike traps around it. It is pretty sweet when it happens but it still wouldn't be practical in a TAS. Edit: Scratch that, I figured out the full damage sword trick (kind of, anyway) and made an SMV of the fight. I have zero experience with TASing, so it's not optimized at all, but it's still 8 frames faster than the fight in the WIP: SMV link
Experienced Forum User
Joined: 12/1/2008
Posts: 9
I've encountered double hits like that while playing in real time as well, but while using the Fire Rod. After doing some testing, I think I figured out how it works. First, I believe 7E0EF0 is the address for Mothula's invincibility timer. Upon damaging Mothula, its value changes to 31 and counts back down to 0 with each frame, at which point Mothula is vulnerable again. (Incidentally, this is also the same for 7E0C6C, which is the Fire Rod's hit box timer for when its shot strikes an object. So, normally, the Fire Rod's residual flames wouldn't be able to hit Mothula after the shot impacts because they'd disappear on the same frame that Mothula is able to be damaged again.) However, if Mothula gets knocked into a spike trap, it instantly resets the value to 0 and allows Mothula to be damaged again. Most of the time the damage knockback will push Mothula away from the attack hit box and keep it from getting damaged twice, but if Mothula bounces off the spike trap just right it will run back into the attack and be damaged a second time.
Experienced Forum User
Joined: 12/1/2008
Posts: 9
These are all used for boss HP: 7E0E50 7E0E51 7E0E52 7E0E53 7E0E54 7E0E55 7E0E56 7E0E57 7E0E58 7E0E59 7E0E5A 7E0E5B 7E0E5C 7E0E5D Most bosses only use 7E0E50, but for ones with multiple parts that can be damaged separately each part will use one of the other addresses.
Experienced Forum User
Joined: 12/1/2008
Posts: 9
A while back while playing LttP, I also ran into the Mothula damage bug. After a couple hours of testing, it seemed like the Fire Rod was more likely to actually do damage than the sword, but I wasn't keeping too careful a watch over the numbers so that may just have been due to random chance. Other than that, I couldn't spot any sort of pattern to when hits would and wouldn't cause damage. Spin attacks with the lv.3 sword seemed to be completely ineffective and wouldn't even knock Mothula back. I never did find a way to hit with them. Spin attacks with the lv.2 sword would connect and have a chance to cause double damage as usual, though. I'd be very interested in seeing the cause of this bug tracked down. And not that it matters for this but, just for reference, the bug is fixed in the GBA version.