User:Dr. Floppy/Apex: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(→‎ROM Map: Updated music storage locations.)
m (Rainwarrior moved page Apex to User:Dr. Floppy/Apex: move progress page to userspace)
 
(5 intermediate revisions by 2 users not shown)
Line 2: Line 2:


== Overview ==
== Overview ==
*Project owner: Dr. Floppy
*<u>Project Owner</u>: Retrometheus
*Developer: 2nd Party
*<u>Developer</u>: Retrometheus
*Compiler: None (hex coding)
*<u>Compiler</u>: None (hex coding)
*Sound driver: None (original engine)
*<u>Sound Driver</u>: Retrodriver™
*Soundtrack by: Dr. Floppy
*<u>Soundtrack by</u>: Retrometheus
*Started on: 5/2011
*<u>Started on</u>: 5/2011
*Status: Preproduction  
*<u>Status</u>: Preproduction  
*Mapper: MMC5 (ETROM)
*<u>Mapper</u>: MMC5 (unique submapper, tentatively dubbed "EJROM")
*PRG-ROM: 1024 KB
*<u>PRG-ROM</u>: 1024 KB
*CHR-ROM: 1024 KB
*<u>CHR-ROM</u>: 1024 KB
*PRG-RAM: 64 KB
*<u>PRG-RAM</u>: 64 KB


== Story ==
== Story ==
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 />
|-
$C0: Current Spritesheet<br />
| 0x001F || DPCM sample data Bank#
$C1: Current BG Tilesheet<br />
|-
$F8: SPR-OAM Transfer on next NMI? (#00 = yes)<br />
| 0x0020-2C || Rhythmic countdowns (even slots only) || P2-P1-T-N-D-P3-P5
$FC: Frame Counter<br />
|-
$FF: Used in terminal MPL loop.<br />
| 0x0021-2D || Selective repeats # remaining (odd slots only) || P2-P1-T-N-D-P3-P5
<br />
|-
$100-1FF: Stack<br />
| 0x002E-2F || Header pointer
<br />
|-
$200-2FF: Sprites<br />
| 0x0030-32 || Timbre/volume data || P2-P1-T
<br />
|-
| 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-DF || Unused?
|-
| 0x00E0 || Game Paused? || #00 = No; #01 = Yes
|-
| 0x00E1-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 ==
$E0010: Default music data bank<br />
$00010-0400F: Default music data bank<br />
$E4010: Alternate music data bank<br />
$04010-1000F: Alternate music data banks<br />
$E8010-F000F: Reserved for expansion<br />
$E0010-F000F: PRG-RAM banks (8 x 8 kB)<br />
$F0010-FE00F: Seven 8kB DPCM banks<br />
$F0010-FE00F: Seven 8kB DPCM banks<br />
$FE010: NMI Routine<br />
$FE010: NMI Routine<br />
Line 52: Line 105:
$FF090: Title Screen draw routine<br />
$FF090: Title Screen draw routine<br />
$FF0F0-FF10F: Title Screen palettes<br />
$FF0F0-FF10F: Title Screen palettes<br />
$FF110: Main Program Loop<br />
$FF210: Main Program Loop<br />
$FFC10: Music frequency table<br />
$FFC10: Music frequency table<br />
$FFD10: Tempo Offsets<br />
$FFD10: Tempo Offsets<br />
Line 58: Line 111:
$100000: Waiting for NMI<br />
$100000: Waiting for NMI<br />


[[Category:Homebrew games]]
[[Category:Unfinished homebrew games]]

Latest revision as of 23:57, 17 March 2023

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 "EJROM")
  • 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-DF Unused?
0x00E0 Game Paused? #00 = No; #01 = Yes
0x00E1-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

$00010-0400F: Default music data bank
$04010-1000F: Alternate music data banks
$E0010-F000F: PRG-RAM banks (8 x 8 kB)
$F0010-FE00F: Seven 8kB DPCM banks
$FE010: NMI Routine
$FF010: Init. Routine
$FF090: Title Screen draw routine
$FF0F0-FF10F: Title Screen palettes
$FF210: Main Program Loop
$FFC10: Music frequency table
$FFD10: Tempo Offsets
$FFF10: Music/Tempo/DPCM Bank index
$100000: Waiting for NMI