The current URL is datacrystal.tcrf.net.
EarthBound/ASM/Controller Input Routines: Difference between revisions
(Start creating page) |
(Add another subroutine and start renaming things from joypad to controller because I changed my mind) |
||
Line 1: | Line 1: | ||
{{subpage|game=EarthBound}} | {{subpage|game=EarthBound}} | ||
==<tt>$C083B8-$C083C0</tt>: Clear | ==<tt>$C083B8-$C083C0</tt>: Clear controller playback/record== | ||
Clears all | Clears all controller playback and record status bit flags stored in [[EarthBound:Controller input memory#$7E007B|<tt>$7E007B</tt>]]. | ||
==<tt>$C083C1-$C083E2</tt>: Start | ==<tt>$C083C1-$C083E2</tt>: Start controller record== | ||
Begins recording | Begins recording controller data to a table at the input pointer. See [[EarthBound:Controller input memory#Record table format|record table format]]. Initializes relevant [[EarthBound:Controller input memory|memory]] including setting the record active bit flag in [[EarthBound:Controller input memory#$7E007B|<tt>$7E007B</tt>]]. | ||
''Note: In an unmodified EarthBound ROM, this appears to only ever be called from a | ''Note: In an unmodified EarthBound ROM, this appears to only ever be called from a subroutine within the debug block.'' | ||
===Inputs=== | ===Inputs=== | ||
* <tt>$0e..$11</tt>: Long pointer to start of record table | * <tt>$0e..$11</tt>: Long pointer to start of record table | ||
==<tt>$C083E3-$C0841A</tt>: Start | ==<tt>$C083E3-$C0841A</tt>: Start controller playback== | ||
If playback is not already active, begins overriding | If playback is not already active, begins overriding controller data per the table at the input pointer. See [[EarthBound:Controller input memory#Record table format|record table format]]. Initializes relevant [[EarthBound:Controller input memory|memory]] including setting the playback active bit flag in [[EarthBound:Controller input memory#$7E007B|<tt>$7E007B</tt>]]. | ||
===Inputs=== | ===Inputs=== | ||
* <tt>$0e..$11</tt>: Long pointer to start of record table | * <tt>$0e..$11</tt>: Long pointer to start of record table | ||
==<tt>$C0841B-$C08455</tt>: Read raw controller data (or playback)== | |||
Write controller data to [[EarthBound:Controller input memory#$7E0077|<tt>$7E0077</tt>]] and [[EarthBound:Controller input memory#$7E0079|<tt>$7E0079</tt>]]. If playback is active (as indicated by the playback active bit flag in [[EarthBound:Controller input memory#$7E007B|<tt>$7E007B</tt>]]), sets the data per the controller playback [[EarthBound:Controller input memory|memory]] and updates the memory accordingly. Otherwise, reads the actual controller data using [https://snes.nesdev.org/wiki/Controller_reading SNES controller automatic read]. | |||
''Note: Subroutine expects to always be called with Data Bank set to #$00 and Data Page set to #$0000.'' | |||
[[Category:EarthBound:ASM|Joypad Input Routines]] | [[Category:EarthBound:ASM|Joypad Input Routines]] | ||
{{Internal Data|game=EarthBound}} | {{Internal Data|game=EarthBound}} | ||
{{stub}} | {{stub}} |
Revision as of 01:58, 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.
Internal Data for EarthBound
| |
---|---|
This page is rather stubbly and could use some expansion. Are you a bad enough dude to rescue this article? |