So...one of my relatives gave me a pirated multigame cartridge which included this game. I played it, and got pissed off from the later parts of the game, and decided to TAS this as
revenge practice getting back to TASing.
WIP of the first two stages.
I used a "bad" dump as the "normal" dump's second stage is unplayable.
Oh, and I believe that my strategy of killing the bosses is the fastest, since it causes 2 damage/13 frames. This makes the battles somewhat less entertaining, however.
Edit: Display script:
Download yuuyuu3.luaLanguage: lua
memory.usememorydomain("System Bus")
local Addresses = {
Player = {
stage_x = 0xFF93,
stage_y = 0xFF96,
char1_HP = 0xD3F5,
char1_XP = 0xD3F7,
char2_HP = 0xD3FD,
char2_XP = 0xD3FF,
char3_HP = 0xD405,
char3_XP = 0xD407,
char4_HP = 0xD40D,
char4_XP = 0xD40F,
overworld_y = 0xD66C,
overworld_x = 0xD67D,
current_HP = 0xFFA0, --hp of current character
current_XP = 0xFFA4,
stage_x_real = 0xFF92, --3 bytes
stage_y_real = 0xFF95
},
head_sprite_x = 0xFF43, --Use this as cam x
head_sprite_y = 0xFFBD, --Use this as cam y
game_state = 0xD398,
--[[
1 Overworld
2
3 Stats screen
4 Fade to stage
5 Password screen
6 Minigame
7 Stage
9 End cutscene
]]--
pause = 0xD410,
npc_start = 0xD46E, --x, +3 y, +6 hp
cam_x = 0xFFB9,
cam_y = 0xFFBD,
}
function text(x, y, message, color)
gui.drawText(x+1, y+1, message, "black", nil, 12)
gui.drawText(x, y, message, color,nil, 12)
end
offset = 0x18
while true do
game_state = memory.read_u8(Addresses.game_state)
cam_x = memory.read_u16_le(Addresses.cam_x)
cam_y = memory.read_u16_le(Addresses.cam_y)
x = memory.read_u16_le(Addresses.Player.stage_x)
y = memory.read_u16_le(Addresses.Player.stage_y)
hp = memory.read_u8(Addresses.Player.current_HP)
text(0,60,game_state,"red")
if game_state == 7 then
text(x - cam_x, y - cam_y, hp, "red")
text(0, 40, cam_x, "red")
text(0, 50, cam_y, "red")
for i = 0, 10 do
e_x = memory.read_u16_le(Addresses.npc_start + offset * i)
e_y = memory.read_u16_le(Addresses.npc_start + 3 + offset * i)
e_hp = memory.read_u8(Addresses.npc_start + 6 + offset * i)
e_cam_x = (e_x - cam_x)
e_cam_y = (e_y - cam_y)
-- console.log(e_cam_y)
text(e_cam_x, e_cam_y, e_hp, "red")
end
end
emu.frameadvance()
end