Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

EarthBound/ASM/Controller Input Routines

From Data Crystal
< EarthBound
Revision as of 01:59, 6 June 2023 by Esorth (talk | contribs) (Esorth moved page EarthBound:ASM:Joypad Input Routines to EarthBound:ASM:Controller Input Routines: Found the SNES developer guide consistently calls the controller "controller")
Jump to navigation Jump to search

This is a sub-page of EarthBound/ASM.

$C083B8-$C083C0: Clear controller playback/record

Clears all controller playback and record status bit flags stored in $7E007B.

$C083C1-$C083E2: Start controller record

Begins recording controller data to a table at the input pointer. See record table format. Initializes relevant memory including setting the record active bit flag in $7E007B.

Note: In an unmodified EarthBound ROM, this appears to only ever be called from a subroutine within the debug block.

Inputs

  • $0e..$11: Long pointer to start of record table

$C083E3-$C0841A: Start controller playback

If playback is not already active, begins overriding controller data per the table at the input pointer. See record table format. Initializes relevant memory including setting the playback active bit flag in $7E007B.

Inputs

  • $0e..$11: Long pointer to start of record table

$C0841B-$C08455: Read raw controller data (or playback)

Write controller data to $7E0077 and $7E0079. If playback is active (as indicated by the playback active bit flag in $7E007B), sets the data per the controller playback memory and updates the memory accordingly. Otherwise, reads the actual controller data using SNES controller automatic read.

Note: Subroutine expects to always be called with Data Bank set to #$00 and Data Page set to #$0000.

So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?