Skip to content

HackROMBase Freespace Usage

InsaneFirebat edited this page Feb 16, 2022 · 2 revisions

This page documents the available freespace in the vanilla SM rom, as well as the freespace usage by the practice hack. This can help determine where to place new code/data, or which bits of code/data might be overlapping with a romhack's data.

FORMAT

Vanilla SM Freespace Address Range, Size (in hex bytes)

  • Practice Hack ORG Address, Approximate Size (in hex bytes), Filename " debug print text"

Practice hack ORG sizes are very likely to change. Do not expect these values to be updated here. Add PAUSE to the end of the build script to read the debug print text and determine exact sizes.

Bank $80

$CD8E-$FFC0, 3232h bytes free

  • $F000, 2CBh, presets.asm " preset_start_gameplay start"
  • $F800, 357h, save.asm " save start"
  • $FC00, 21Ch, infohud.asm " infohud bank80 start"

Bank $81

$EF1A-$FF00, FE6h bytes free $FF60-$FFFF, A0h bytes free

  • $F700, 8Ch, spriteprio.asm " spriteprio start"
  • $FA00, 145h, init.asm " init start"

Bank $82

$F70F-$FFFF, 8F1h bytes free

  • $F70F, 84h, minimap.asm " minimap bank82 start"
  • $FA00, 27Eh, presets.asm " presets start"

Bank $83

$AD66-$FFFF, 529Ah bytes free

  • $B000, EBh, rng.asm " rng start"

Bank $84

$EFD3-$FFFF, 102Dh bytes free

  • $FF6D, 11h, fanfare.asm " fanfare restore start"

Bank $85

$9643-$FFFF, 69BDh bytes free

  • $9643, 18Bh, fanfare.asm " fanfare message start"
  • $F800, 233h, gamemode.asm " gamemode start"
  • $FD00, 2Ch, menu.asm " menu bank85 start"
  • $FE00, B7h, fanfare.asm " fanfare start"

Bank $86

$F4A6-$FFFF, B5Ah bytes free

Bank $87

$C964-$FFFF, 369Ch bytes free

Bank $88

$EE32-$FFFF, 11CEh bytes free

Bank $89

$AEFD-$FFFF, 5103h bytes free

  • $C000, 34EBh, menu.asm " menu start"

Bank $8A

$E980-$FFFF, 1680h bytes free

Bank $8B

$F754-$FFFF, 8ACh bytes free

Bank $8C

$F3E9-$FFFF, C17h bytes free

  • $FF00, ???h, **misc.asm ** " spacetime bank8C start"

Bank $8D

$FFF1-$FFFF, Fh bytes free

  • $FFF1, 9h, **misc.asm ** " misc bank8D start"

Bank $8E

$E600-$FFFF, 1A00h bytes free

Bank $8F

$E99B-$FFFF, 1665h bytes free

  • $FE00, 3Ah, misc.asm " misc bank8F start"

Bank $90

$F63A-$FFFF, 9C6h bytes free

  • $F640, D3h, **minimap.asm " minimap bank90 start"
  • $F800, 1DDh, **misc.asm " misc bank90 start"

Bank $91

$FFEE-$FFFF, 12h bytes free

Bank $92

$EDF4-$FFFF, 120Ch bytes free

Bank $93

$F61D-$FFFF, 9E3h bytes free

Bank $94

$DC00-$DFFF, 400h bytes free

Banks $95-$98

<full>

Bank $99

$EE21-$FFFF, 11DFh bytes free

Bank $9A

$FC20-$FFFF, 3E0h bytes free

Bank $9B

$FDA0-$FFFF, 260h bytes free

Bank $9C

$FA80-$FFFF, 580h bytes free

Bank $9D

$F780-$FFFF, 880h bytes free

Bank $9E

$F6C0-$FFFF, 940h bytes free

Bank $9F

$F740-$FFFF, 8C0h bytes free

Bank $A0

$F9D3-$FFFF, 62Dh bytes free

Bank $A1

$EBD1-$FFFF, 142Fh bytes free

Bank $A2

$F498-$FFFF, B68h bytes free

Bank $A3

$F1AB-$FFFF, E55h bytes free

Bank $A4

$F6BF-$FFFF, 941h bytes free

  • $F700, 14h, rng.asm " crocomire rng start"

Bank $A5

$F95A-$FFFF, 6A6h bytes free

  • $FA00, 17h, rng.asm " draygon rng start"

Bank $A6

$FEBC-$FFFF, 144h bytes free

  • $FEC0, 64h, rng.asm " ridley rng start"

Bank $A7

$FF82-$FFFF, 7Eh bytes free

  • $FFB6, Ch, rng.asm " kraid rng start"

Bank $A8

$F9BE-$FFFF, 642h bytes free

Bank $A9

$FB70-$FFFF, 490h bytes free

Bank $AA

$F7D3-$FFFF, 82Dh bytes free

Bank $AB

$F800-$FFFF, 800h bytes free

Bank $AC

$EE00-$FFFF, 1200h bytes free

Bank $AD

$F444-$FFFF, BBCh bytes free

Bank $AE

$FD20-$FFFF, 2E0h bytes free

Bank $AF

$EC00-$FFFF, 1400h bytes free

Bank $B0

$EE00-$FFFF, 1200h bytes free

Bank $B1

<full>

Bank $B2

$FEAA-$FFFF, 156h bytes free

Bank $B3

$ED77-$FFFF, 1289h bytes free

Bank $B4

$F4B8-$FFFF, B48h bytes free

Bank $B5

$F000-$FFFF, 1000h bytes free

Bank $B6

$F200-$FFFF, E00h bytes free

Bank $B7

$FD00-$FFFF, 300h bytes free

Bank $B8

<empty>

  • $8000, 34EBh, menu.asm " mainmenu start"

Banks $B9-$C1

<full>

Bank $C2-$CD

<full>

Bank $CE

$B22E-$FFFF, 4DD2h bytes free

Banks $CF-$DD

<full>

Bank $DE

$D1C0-$FFFF, 2E40h bytes free

Bank $DF

$8000-$FFFF, 8000h bytes free (unused music bank)

  • $D500, 2000h, minimap.asm " minimap bankDF start"

Banks $E9-$EF

<empty>

  • Various incsrc preset_data.asm orgs in presets.asm

Bank $F0

$8000-$FFFF, 8000h bytes free

  • $8000, 2860h, infohud.asm " infohud start"
  • $E000, C4Dh, spritefeat.asm " spritefeat start"

Bank $F1-$F2

$8000-$FFFF, 8000h bytes free

  • Various incsrc preset_menu.asm orgs in presets.asm