EarthBound/ASM/Controller Input Routines: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Add another subroutine and start renaming things from joypad to controller because I changed my mind)
m (Esorth moved page EarthBound:ASM:Joypad Input Routines to EarthBound:ASM:Controller Input Routines: Found the SNES developer guide consistently calls the controller "controller")
(No difference)

Revision as of 01:59, 6 June 2023

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?