User:Dr. Floppy/Apex: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(→‎Overview: Updated Info)
(→‎RAM Map: Revised information; added new layout template.)
Line 21: Line 21:


== RAM Map ==
== RAM Map ==
$00-0D: Music channel pointers<br />
{| border="1" cellpadding="1"
$0E-0F: Rhythm Array pointer<br />
|'''RAM'''  || '''Function''' || '''Details'''
$10-1D: Repeat Coda pointers<br />
|-
$1E: Song Data bank#<br />
| 0x0000-0D || Music Channel pointers || P2-P1-T-N-D-P3-P5
$1F: DPCM sample data Bank#<br />
|-
$20-2F: Cycle countdowns & reiterations<br />
| 0x000E-0F || Rhythm Array pointer ||
$30-3F: Timbre/volume/misc.<br />
|-
$40-47: Music "jukebox" variables<br />
| 0x0010-1D || Repeat Coda pointers || P2-P1-T-N-D-P3-P5
$5C: Current macromode<br />
|-
$5D: Macromode transition destination<br />
| 0x001E || Song Data bank#
$5F: Transition status [#00 = null; #01: activate; #FF: transitioning]<br />
|-
$60-63: Sound effect variables<br />
| 0x001F || DPCM sample data Bank#
$B0-B2: Controller 1 buttons (old, regular, new)<br />
|-
$B8-BA: Controller 2 buttons (old, regular, new)<br />
| 0x0020-2C || Rhythmic countdowns (even slots only) || P2-P1-T-N-D-P3-P5
$C0: Current Spritesheet<br />
|-
$C1: Current BG Tilesheet<br />
| 0x0021-2D || Selective repeats # remaining (odd slots only) || P2-P1-T-N-D-P3-P5
$F8: SPR-OAM Transfer on next NMI? (#00 = yes)<br />
|-
$FC: Frame Counter<br />
| 0x002E-2F || Header pointer
$FF: Used in terminal MPL loop.<br />
|-
<br />
| 0x0030-32 || Timbre/volume data || P2-P1-T
$100-1FF: Stack<br />
|-
<br />
| 0x0033 || Song ID# jukebox || Writing a value here triggers a new song to play.
$200-2FF: Sprites<br />
|-
<br />
| 0x0034 || Current song ID#
|-
| 0x0035-36 || Timbre/volume data || P3-P5
|-
| 0x0037 || Reserved for SFX.
|-
| 0x0038-3E || Most recent rhythmic countdown value || Used to reload even-numbered slots in the $20-2C range.
|-
| 0x003F || Reserved for SFX.
|-
| 0x0040-5B || Unused
|-
| 0x005C || Current macromode
|-
| 0x005D || Macromode transition destination
|-
| 0x005E || Reserved
|-
| 0x005F || Transition status || 00 = Null; 01 = Activate; FF = Transitioning
|-
| 0x0060-AF || Unused
|-
| 0x00B0-B2 || Controller 1 buttons || old-regular-new
|-
| 0x00B3-B7 || Reserved
|-
| 0x00B8-BA || Controller 2 buttons || old-regular-new
|-
| 0x00BB-BF || Reserved
|-
| 0x00C0 || Current spritesheet
|-
| 0x00C1 || Current BG tilesheet
|-
| 0x00C2-F7 || Unused?
|-
| 0x00F8 || SPR-OAM transfer on next NMI? || #00 = yes
|-
| 0x00FC || Frame counter || See what we did there?
|-
| 0x00FF || Used in terminal MPL loop
|-
| 0x0100-1FF || Stack
|-
| 0x0200-2FF || Sprites
|-
|}


== ROM Map ==
== ROM Map ==

Revision as of 01:32, 14 October 2013

Apex is a side-scrolling adventure/exploration game. It serves as a testament to the "golden age" of console gaming (circa early '90's)- a celebration of what was, what is and what might have been.

Overview

  • Project owner: Retrometheus
  • Developer: Retrometheus
  • Compiler: None (hex coding)
  • Sound driver: Retrodriver™
  • Soundtrack by: Retrometheus
  • Started on: 5/2011
  • Status: Preproduction
  • Mapper: MMC5 (unique submapper, tentatively dubbed "EXROM")
  • PRG-ROM: 1024 KB
  • CHR-ROM: 1024 KB
  • PRG-RAM: 64 KB

Story

Bioterrorists are cultivating superviruses in labs hidden at the bottom of the ocean.

Gameplay

Apex is a rather nondescript purple angelfish with two basic attacks: a stationary somersault and high-velocity bubble projectiles.

RAM Map

RAM Function Details
0x0000-0D Music Channel pointers P2-P1-T-N-D-P3-P5
0x000E-0F Rhythm Array pointer
0x0010-1D Repeat Coda pointers P2-P1-T-N-D-P3-P5
0x001E Song Data bank#
0x001F DPCM sample data Bank#
0x0020-2C Rhythmic countdowns (even slots only) P2-P1-T-N-D-P3-P5
0x0021-2D Selective repeats # remaining (odd slots only) P2-P1-T-N-D-P3-P5
0x002E-2F Header pointer
0x0030-32 Timbre/volume data P2-P1-T
0x0033 Song ID# jukebox Writing a value here triggers a new song to play.
0x0034 Current song ID#
0x0035-36 Timbre/volume data P3-P5
0x0037 Reserved for SFX.
0x0038-3E Most recent rhythmic countdown value Used to reload even-numbered slots in the $20-2C range.
0x003F Reserved for SFX.
0x0040-5B Unused
0x005C Current macromode
0x005D Macromode transition destination
0x005E Reserved
0x005F Transition status 00 = Null; 01 = Activate; FF = Transitioning
0x0060-AF Unused
0x00B0-B2 Controller 1 buttons old-regular-new
0x00B3-B7 Reserved
0x00B8-BA Controller 2 buttons old-regular-new
0x00BB-BF Reserved
0x00C0 Current spritesheet
0x00C1 Current BG tilesheet
0x00C2-F7 Unused?
0x00F8 SPR-OAM transfer on next NMI? #00 = yes
0x00FC Frame counter See what we did there?
0x00FF Used in terminal MPL loop
0x0100-1FF Stack
0x0200-2FF Sprites

ROM Map

$E0010: Default music data bank
$E4010: Alternate music data bank
$E8010-F000F: Reserved for expansion
$F0010-FE00F: Seven 8kB DPCM banks
$FE010: NMI Routine
$FF010: Init. Routine
$FF090: Title Screen draw routine
$FF0F0-FF10F: Title Screen palettes
$FF110: Main Program Loop
$FFC10: Music frequency table
$FFD10: Tempo Offsets
$FFF10: Music/Tempo/DPCM Bank index
$100000: Waiting for NMI