Editing Wikifang:Telefang 1 Translation Patch/State Machine

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 2: Line 2:


State machines are indexed through four primary SystemState variables, and two secondary state variables. The secondary state variables are used in certain states for various reasons - usually to prevent overwriting the state of another screen. (Why they didn't set up a proper state stack for this sort of thing is beyond me...)
State machines are indexed through four primary SystemState variables, and two secondary state variables. The secondary state variables are used in certain states for various reasons - usually to prevent overwriting the state of another screen. (Why they didn't set up a proper state stack for this sort of thing is beyond me...)
{| class="wikitable"
|-
! WRAM Addr !! Disassembly Symbol !!
|-
| $C3E0 || W_SystemState || First order state index
|-
| $C3E1 || W_SystemSubState || Second order state index
|-
| $C3E2 || W_SystemSubSubState || Third order state index (primary)
|-
| $C3E3 || (Not named) || Fourth order state index (presumed primary, not yet seen in practice)
|-
| $1:D400 || W_Battle_SubSubState || Third order state index (secondary)
|-
| $1:D401 || W_Battle_4thOrderSubState || Fourth order state index (secondary)
|}
== System State Machine ==
Here's a breakdown of the sixteen first-order states in Telefang.
{| class="wikitable"
|-
! State ID. !! Impl. ROM Addr !! Disassembly Symbol !!
|-
| $00 || $02:5300 || || Intro logos.
|-
| $01 || $02:493F || || Title screen
|-
| $02 || $02:4000 || ||
|-
| [[#st_03|$03]] || [[#st_03|$04:4000]] || TitleMenu_GameStateMachine || Title menu (continue/new game/options/link)
|-
| $04 || $02:40BF || || Attract screen
|-
| $05 || $0B:1EA1 || || Overworld
|-
| $06 || $1C:4000 || Encounter_GameStateMachine || Random, T-Fanger, and other plot-important encounters
|-
| $07 || $05:441B || || Battle system
|-
| $08 || $1D:4000 || Victory_ExternalStateMachine || Victory processing screens at end of battle (level-up, contact loss, game over)
|-
| $09 || $02:4B8B || || Status screen (used in a lot of places...)
|-
| $0A || $02:4824 || ||
|-
| $0B || colspan="3" style="text-align: center" | ''Aliases state $0C''
|-
| $0C || $04:45C0 || || Pause menu (contacts/index/save/dial etc)
|-
| $0D || $02:44CF || ||
|-
| $0E || $02:458E || ||
|-
| $0F || $1F:4000 || || Link communications (vs battle/trade/melo-d)
|}
<span id="st_03"></span>
=== Title Menu ===
{| class="wikitable"
|-
! State ID. !! Impl. ROM Addr !! Disassembly Symbol !!
|-
| $03 00 || || || Load CGB Palette 0
|-
| $03 01 || || || Initialize phone graphics & sprites
|-
| $03 02 || || || Load initial menu tilemaps & initialize menu state
|-
| $03 03 || || || Load tilemaps for each individual menu option.
|-
| $03 04 || || || Load color palettes for the menu.
Then, move the window and background layers in place for the upcoming animation.
|-
| $03 05 || || || Final commit of palettes. On DMG, this state configures the legacy palette registers instead.
|-
| $03 06 || || ||
|-
| $03 07 || || || Animate the two halves of the phone scrolling in.
|-
| $03 08 || || || Player input handling
|-
| $03 09 || || || Start menu-scrolling-up animation.
|-
| $03 0A || || || Menu-scrolling-up animation, frame 2.
|-
| $03 0B || || || End menu-scrolling animation (either direction).
|-
| $03 0C || || || Start menu-scrolling-down animation.
|-
| $03 0D || || || Menu-scrolling-down animation, frame 2.
|-
| $03 0E || || || Fade out screen, then transfer to overworld ($05 00)
|-
| $03 0F || || ||
|-
| $03 10 || || ||
|-
| $03 11 || || || Time input
|-
| $03 12 || || ||
|-
| $03 13 || || || Initialize naming input, clear string buffers.
|-
| $03 14 || || || Name input
|-
| $03 15 || || || Saves the input buffer to the player name buffer.
|-
| $03 16 || || ||
|-
| $03 17 || || ||
|-
| $03 18 || || || (Called when you select "Sound" on the menu. More info required.)
|-
| $03 19 || || ||
|-
| $03 1A || || ||
|-
| $03 1B || || ||
|-
| $03 1C || || || Save-file overwrite warning
|-
| $03 1D || || ||
|-
| $03 1E || || ||
|-
| $03 1F || colspan="3" style="text-align: center" | ''Aliases state $03 01''
|-
| $03 20 || || || Denjuu nicknaming screen init
|-
| $03 21 || || || Denjuu nicknaming palette fade-in
|-
| $03 22 || || || Denjuu nicknaming input handler
|-
| $03 23 || || || Denjuu nickname save
|-
| $03 24 || || ||
|-
| $03 25 || || ||
|}
Please note that all contributions to Wikifang are considered to be released under the Attribution-NonCommercial-ShareAlike 3.0 Unported (see Wikifang:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)