Herringway / ebsrc

Source code recreation for the game Earthbound
133 stars 8 forks source link

Some things I've identified. More to come later. #28

Open lilliththecreative opened 6 months ago

lilliththecreative commented 6 months ago

Miscellaneous C01000 - This is a redirect to HIDE HP PP WINDOWS

Control Code Stuff (courtesy of https://datacrystal.romhacking.net/wiki/EarthBound/Control_Codes) C102D0 - Pauses an actionscript C1AA18 - Shows the wallet window C226C5 - Sets whether a present is open or closed C226E6 - Gets the event flag of the TPT entry the player is currently interacting with C23008 - Creates a backup of the current party C2307B - Restores the backup C3FB09 - Returns whether the current action user is an ally or enemy

Event data C3098B - Part of actionscript 265

Some event tasks are identified here: https://gist.github.com/CataLatas/76700c2781bcfade26953ef4cc827862 (maybe add a subfolder in data/events for event tasks?)

define MovTask_Anim8 = 0xC3A09F // Animate with 8 frame delay define MovTask_Anim24 = 0xC3A0B2 // Animate with 24 frame delay define MovTask_Anim12 = 0xC3A0C5 // Animate with 12 frame delay define MovTask_Anim_Var4 = 0xC3A12E // Animate with [VAR4] frame delay define MovTask_Anim8_Toggle_DestroyIfFar = 0xC3A15E // Animate with 8 frame delay (togglable via VAR4) and destroy if far define MovTask_Anim12_24_DestroyIfFar = 0xC3A17B // Animate with 12 then 24 frame delay and destroy if far define MovTask_Anim24_DestroyIfFar = 0xC3A18F // Animate with 24 frame delay and destroy if far define MovTask_Anim9_DestroyIfFar = 0xC3A1B7 // Animate with 9 frame delay and destroy if far define MovTask_Anim6_DestroyIfFar = 0xC3A1CB // Animate with 6 frame delay and destroy if far define MovTask_Anim16_DestroyIfFar = 0xC3A1F3 // Animate with 16 frame delay and destroy if far define MovTask_HandleCollision = 0xC3A262 // Handle collisions. Doesn't need to be used by stationary entities define MovTask_DestroyIfFar = 0xC3A2B8 // Destroy if far

define MovTask_EnemyTouch1 = 0xC3A434 // Start battle with enemy on touch define MovTask_EnemyTouch2 = 0xC3A448 // Very similar to above, I don't actually know what's different

define MovTask_PartyLook = 0xC3AFA3 // Party members look at ENTITY

define MovTask_DestroyIfFar_UnsetFlag_10 = 0xC3B431 // Destroy if far and unset event flag 10

define MovTask_ButterflyTouch = 0xC3DEED // Butterfly effect on touch

define MovTask_CallNpcScriptOnTouch = 0xC36D18 // Call NPC primary text script on touch

Null events - C36BEA and C3A07F Null event tasks - C3A271 and C3A272

I'll add more comments here if I identify anything else.

Herringway commented 6 months ago

I'm working on getting this documentation integrated. I have a lot to copy over from the port atm, but hopefully we'll be caught up real soon.

I did notice a small error in C102D0 there - it waits for the actionscript to complete or yield, rather than pause it.

Thanks for helping! Identifying even small things goes a long way to identifying other things.