According to my notes, I have a usermovie of the quadra hit abuse (hitting 4 times the boss with 1 single punch) way far in the TAS. However I can't find this particular movie from 368 usermovies I have.
edit:
Until I find it, Since I couldn't find among my usermovies nor my recovered lost movies, it looks lost forever :(
Some notes I have in my memory:
- Majority of improvements comes from reducing lag frames as much as possible and optimized movement
- Order of level selection changes the position of lag frames around lagging areas. My main strategy was switching level orders and leaving the snake boss for the rest of the TAS.
- The L+R lag is not affected by above trick
- Quadra hit abuse... so my lost TAS suspended on the hovering gloves boss (3:20 at encode), where it's possible to use 1 punch after jumping and hitting the boss 4 times. This seems to be a huge bug, however I have no info if this could be applied to other bosses as well. The trick is totally unreliable and I believe it has something to do with the stack or some hardcoded shit regarding this particular boss (the previous bosses in the game doesn't have multiple entities). The confirmation of bug comes from watching boss HP.
The reason quadra hit abuse saves a lot of time is that the starting position of the boss is way to high vertically and our hero can't punch that many right at the start. With great timing and manipulating the factors that enables this bug would mean that you can kill the boss in a 1 jump / 4 dmg and spamming the punching for the remaining health as the boss starts floating downward.
My final conclusion was there could be a hidden hitbox that's appears wildly different each frame and somehow attached to the boss for whatever reason.
One last memory I have is that the motion of my quadra hit abuse was jumping and punching near the top of the boss head, while his health dropped down 4 times within the next 4 frames after hitting it in the first place.
Here's my spreadsheet of fastest frame times:
https://docs.google.com/spreadsheets/d/0BzzBXzk5TnLYbEx1cU9aQVN3aDQ/edit?usp=sharing&ouid=111054984793222235914&resourcekey=0-ghrjN4McO4p2MBL6qM8IYQ&rtpof=true&sd=true
lua script from before 2017:
Language: lua
local px, cx, py, pxs, pys
local lpx = 0
local lpy = 0
local function axis(x,y,color)
gui.box(x,y,x+32,y+32,color,"#000000f0")
end
--[[
4A5 background tile 0 row even columns
4A6 next row
]]--
local function objects()
--[[
402 glitch box?
403 glitch box?
1A difference
41a y pos
41c x pos
434 y pos
436 x pos
44e
450
]]--
for i = 0, 15 do
axis(memory.readbyteunsigned(0x41C+i*0x1A),memory.readbyteunsigned(0x41A+i*0x1A),"#FFFF0010")
gui.text(memory.readbyteunsigned(0x41C+i*0x1A),memory.readbyteunsigned(0x41A+i*0x1A),string.format("%X %d %3d %d",i*0x1A+0x41C,memory.readbyte(0x401+i*0x1a), memory.readbyte(0x403+i*0x1a), memory.readbyte(0x415+i*0x1a)),"#000000","#ff0000f0")
end
end
local function Stuff()
cx = memory.readwordunsigned(0x34f, 0x350)
px = memory.readbyte(0x203)
py = memory.readbyte(0x204)
pxs = px - lpx
pys = py - lpy
gui.text(60,100,cx)
gui.text(px,py,string.format("X:%3d (%3d)\nY:%3d (%3d)", px, pxs, py, pys))
lpx = px
lpy = py
objects()
end
emu.registerafter(Stuff)