I made a display script for this game:
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