Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
url = https://github.com/amoebaOfDoom/Mosaic
[submodule "asar"]
path = asar
url = https://github.com/RPGHacker/asar.git
url = https://github.com/blkerby/asar.git
[submodule "rust/lznint"]
path = rust/lznint
url = https://github.com/blkerby/lznint.git
7 changes: 7 additions & 0 deletions patches/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
`src/` contains ASM source files (for patches whose source is available)

`ips/` contains IPS patch files. Patches whose source is (currently) unavailable are placed in `ips/no source/`

`rom_map/` contains text files documenting address ranges that are overwritten by patches or otherwise reserved for use by the randomiser

`samus_sprites/` contains IPS patches specifically for changing Samus' sprite
1 change: 1 addition & 0 deletions patches/ips/Acid Tilemap.ips
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PATCH@@N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N PQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSEOF
4 changes: 4 additions & 0 deletions patches/ips/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
The patches not under `no source/` can be generated by:
* Going to `../../python/scripts/`
* Building asar with IPS support with `build_asar.py`
* Running `build_patches.py`
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added patches/ips/unused/gravity_palette.ips
Binary file not shown.
File renamed without changes.
Binary file added patches/ips/unused/music.ips
Binary file not shown.
Binary file added patches/ips/unused/no_map_select.ips
Binary file not shown.
File renamed without changes.
44 changes: 21 additions & 23 deletions patches/rom_map/Bank 80.txt
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
0000 - CD8E: used by vanilla game - [BC37 - C437 Tilemap - failed SRAM mapping check] (2048 bytes) can be repurposed if needed (never used)
CDA0 - D02F: max_ammo_display.asm
D02F - D100: fast_pause_menu.asm
D100 - D140: fast_doors.asm
D140 - D200: oob_death.asm
D200 - D240: vanilla_camerafixes.asm
D240 - D310: stats.asm
D310 - D330: fast_reload.asm
D330 - D340: crash_handle_base.asm [also referenced in patch.rs]
D340 - DA00: reserve_hud.asm
DA00 - DD00: msu1.asm
DD00 - E100: Palette pointer table for Mosaic
E100 - E180: area_palette.asm
E180 - E1B0: fix_horiz_doors.asm
E1B0 - E2A0: [FREE]
E2A0 - E3C0: decompression.asm
E3C0 - E440: disable_etanks.asm
E440 - E540: load_plms_early.asm
E540 - E580: hud_expansion_opaque.asm
E580 - E660: samus_tiles_optim_animated_tiles_fix.asm
E660 - E680: load_flash_suit.asm
E680 - E6A0: load_blue_suit.asm

CDA0 - CF86: ; max_ammo_display_fast.asm
D02F - D058: ; fast_pause_menu.asm
D100 - D10A: ; fast_doors.asm
D140 - D198: ; oob_death.asm
D200 - D215: ; vanilla_camerafixes.asm
D240 - D301: ; stats.asm
D310 - D32D: ; fast_reload.asm
D330 - D33D: ; crash_handle_base.asm
D340 - D71F: ; reserve_hud.asm
DA00 - DB80: ; msu1.asm
DD00 - E0FF: Palette pointer table for Mosaic
E100 - E136: ; area_palettes.asm
E180 - E1A7: ; fix_horiz_doors.asm
E1B0 - E29F: [FREE]
E2A0 - E396: ; decompression.asm
E3C0 - E40A: ; disableable_etanks.asm
E440 - E50D: ; load_plms_early.asm
E540 - E54F: ; hud_expansion_opaque.asm
E580 - E643: ; samus_tiles_optim_animated_tiles_fix.asm
E660 - E676: ; load_flash_suit.asm
E680 - E692: ; load_blue_suit.asm
8 changes: 4 additions & 4 deletions patches/rom_map/Bank 81.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
EF20 - F100: saveload.asm
F100 - F140: map_area.asm
F140 - F1C0: mosaic_fx_fix.asm
F1C0 - F200: saveload.asm
EF20 - F0E8: ; saveload.asm
F100 - F10F: ; no_map_select.asm
F140 - F167: ; mosaic_fx_fix.asm
F1C0 - F1F9: ; saveload.asm
57 changes: 24 additions & 33 deletions patches/rom_map/Bank 82.txt
Original file line number Diff line number Diff line change
@@ -1,33 +1,24 @@
C262 - C27D: disableable_etanks.asm
C27D - C298: vanilla_bugfixes.asm
C2A6 - C2B7: split_speed.asm
C362 - C369:
C37E - C385:
C3B6 - C3BD: map_area.asm
C3C4 - C3D9: map_area.asm
C411 - C42D: map_area.asm
C42D - C465: split_speed.asm
F70F - F810: map_area.asm
F810 - F830: crash_handle_springball.asm
F830 - F9E0: disable_etanks.asm
F9E0 - FA00: reserve_backward_fill.asm
FA00 - FA80: alternate_door_colors.asm
FA80 - FA90: fix_water_fx_bug.asm
FA90 - FBB0: seed_hash_display.asm
FBB0 - FBF0: fix_kraid_hud.asm
FBF0 - FC30: crash_handle_autoreserve.asm
FC30 - FC50: fix_transition_bad_tiles.asm
FC50 - FCD0: map_area.asm
FCD0 - FD00: escape.asm
FD00 - FD80: item_dots_disappear.asm
FD80 - FE00: fast_doors.asm
FE00 - FE70: load_plms_early.asm
FE70 - FE80: fast_reload.asm
FE80 - FF00: zebes_asleep_music.asm
FF00 - FF20: reserve_hud.asm
FF20 - FF30: split_speed.asm
FF30 - FF80: reserve_hud.asm
FF80 - FFFA: pause_menu_objectives.asm
FFFA - FFFC: room name/map_area
FFFC - FFFE: objectives/fast_pause_menu
FFFE - end: custom etank color
F70F - F808: ; map_area.asm
F810 - F827: ; crash_handle_springball.asm
F830 - F9DE: ; disableable_etanks.asm
F9E0 - F9FB: ; reserve_backward_fill.asm
FA00 - FA6B: ; alternate_door_colors.asm
FA80 - FA87: ; fix_water_fx_bug.asm
FA90 - FBAE: ; seed_hash_display.asm
FBB0 - FBED: ; fix_kraid_hud.asm
FBF0 - FC1A: ; crash_handle_autoreserves.asm
FC30 - FC42: ; fix_transition_bad_tiles.asm
FC50 - FC91: ; map_area.asm
FCD0 - FCFD: ; escape.asm
FD00 - FD1B: ; item_dots_disappear.asm
FD80 - FDB0: ; fast_doors.asm
FE00 - FE1E: ; load_plms_early.asm
FE7C - FE7F: ; fast_reload.asm
FE80 - FEF7: ; zebes_asleep_music.asm
FF00 - FF07: ; reserve_hud.asm
FF20 - FF2F: ; split_speed.asm
FF30 - FF7B: ; reserve_hud.asm
FF80 - FFE3: ; pause_menu_objectives.asm
FFFA - FFFB: room name/map_area
FFFC - FFFD: objectives/fast_pause_menu
FFFE - FFFF: ; map_area.asm
19 changes: 9 additions & 10 deletions patches/rom_map/Bank 83.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
0000 - AD66: Used by vanilla game
AD66 - AD72: escape_autosave.asm
B000 - B700: [FREE]
B700 - B800: rng_fix.asm
B800 - BA00: Mosaic (Area FX.asm)
BA00 - BB00: [FREE]
BB00 - BC40: disableable_etanks.asm
BC40 - E000: [FREE]
E000 - F000: item_dots_disappear.asm
F000 - end: Mosaic (FX data)
AD66 - AD71: ; escape_autosave.asm
B000 - B6FF: [FREE]
B600 - B6FF: ; item_dots_disappear.asm
B700 - B7BA: ; rng_fix.asm
B800 - B9B3: ; Area FX.asm
BA00 - BAFF: [FREE]
BB00 - BC39: ; disableable_etanks.asm
BC40 - DFFF: [FREE]
F000 - FFFF: Mosaic (FX data)
52 changes: 26 additions & 26 deletions patches/rom_map/Bank 84.txt
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
$858C - $85B2: vanilla_bugfixes.asm (unused vanilla code, repurposed for main street save station plm check.)
$EFD3 - $EFD7: load_plms_early.asm
$EFD7 - $F000: vanilla_camerafixes.asm
$F000 - $F0E2: walljump_plm.asm
$F0E2 - $F28B: split_speed_plm.asm
$F28B - $F300: mb_barrier_clear.asm (to remove invisible spikes after Mother Brain defeaed)
$F300 - $F380: escape_items.asm
$F380 - $F480: escape.asm
$F480 - $F490: etank_refill_full.asm
$F490 - $F4A0: reserve_hud.asm
$F4A0 - $F500: [FREE]
$F500 - $F580: itemsounds.asm
$F580 - $F590: mb_left_entrance.asm
$F590 - $F5A0: horizontal_door_fix.asm
$F5A0 - $F5C0: energy_station_reserves.asm
$F5C0 - $F630: wall_doors.asm
$F630 - $F6D0: [FREE]
$F6D0 - $F700: missile_refill_all.asm
$F700 - $F730: nothing_item.asm
$F730 - $F800: stats.asm
$F800 - $F900: hazard_markers
$F900 - $FA00: escape.asm
$FA00 - $FC00: gray_doors.asm
$FC00 - $FC40: fix_kraid_vomit.asm
$FC40 - $FCC0: escape_autosave.asm
$FCC0 - end: beam_doors.asm
EFD3 - EFD6: ; load_plms_early.asm
EFD7 - EFE7: ; vanilla_camerafixes.asm
F000 - F0E1: ; walljump_plm.asm
F0E2 - F27F: ; split_speed_plm.asm
F28B - F2FF: ; mb_barrier_clear.asm
F300 - F30C: ; escape_items.asm
F380 - F418: ; escape.asm
F480 - F489: ; etank_refill_full.asm
F490 - F499: ; reserve_hud.asm
F4A0 - F4FF: [FREE]
F500 - F550: ; itemsounds.asm
F580 - F58D: ; mb_left_entrance.asm
F590 - F59D: ; horizontal_door_fix.asm
F5A0 - F5B5: ; energy_station_reserves.asm
F5C0 - F62F: ; wall_doors.asm
F630 - F6CF: [FREE]
F6D0 - F6F9: ; missile_refill_all.asm
F700 - F721: ; nothing_item.asm
F730 - F7F1: ; stats.asm
F800 - F8C2: ; hazard_markers.asm
F900 - F955: ; hyper_beam.asm
F900 - F98D: ; escape.asm
FA00 - FB46: ; gray_doors.asm
FC00 - FC0E: ; fix_kraid_vomit.asm
FC40 - FC9D: ; escape_autosave.asm
FCC0 - FFEE: ; beam_doors.asm
45 changes: 23 additions & 22 deletions patches/rom_map/Bank 85.txt
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
$9643 - $96B0: [FREE]
$96B0 - $9800: extended_msg_boxes.asm
$9800 - $9880: spin_lock.asm
$9880 - $9980: fast_reload.asm
$9980 - $9B00: stats.asm
$9B00 - $9B20: fix_hyper_slowlock.asm
$9B20 - $9FF0: pause_menu_objectives.asm
$9FF0 - $A050: vanilla_fanfare_stop_sounds
$A050 - $A100: [FREE]
$A100 - $A180: fix_transition_bad_tiles.asm
$A180 - $A280: special_door_reveal.asm
$A280 - $A880: map_area.asm
$A8B0 - $A9B0: hud_expansion_opaque.asm
$A9B0 - $AA00: sand_clamp.asm
$AA00 - $AAA0: pause_menu_objectives.asm
$AAA0 - $AB00: crash_handle_yapping.asm
$AB00 - $ACA0: map_area.asm
$ACA0 - $AD00: load_flash_suit
$AD00 - $AD43: crash_handle_springball.asm
$AD43 - $AEE0: reserve_backward_fill.asm
$AEE0 - $B600: crash_handle_base.asm
$B600 - $BA00: map_area.asm
9643 - 96AF: [FREE]
96B0 - 97C1: ; extended_msg_boxes.asm
9800 - 9827: ; spin_lock.asm
9880 - 993A: ; fast_reload.asm
9980 - 9A23: ; stats.asm
9B00 - 9B1B: ; fix_hyper_slowlock.asm
9B20 - 9FEF: ; pause_menu_objectives.asm
9FF0 - A012: ; vanilla_fanfare_stop_sounds.asm
A050 - A0FF: [FREE]
A100 - A16A: ; fix_transition_bad_tiles.asm
A1D6 - A23C: ; special_door_reveal.asm
A280 - A283: ; map_area.asm
A290 - A826: ; map_area.asm
A8B0 - A934: ; hud_expansion_opaque.asm
A9B0 - A9D9: ; sand_clamp.asm
AA00 - AA95: ; pause_menu_objectives.asm
AAA0 - AADC: ; crash_handle_yapping.asm
AB00 - AC95: ; map_area.asm
ACA0 - ACFF: load_flash_suit
AD00 - AD40: ; crash_handle_springball.asm
AD43 - AEDB: ; reserve_backward_fill.asm
AEE0 - B599: ; crash_handle_base.asm
B600 - B93E: ; map_area.asm
2 changes: 1 addition & 1 deletion patches/rom_map/Bank 86.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
$F4B0 - $F4D0: vanilla_bugfixes.asm
F4B0 - F4C8: ; vanilla_bugfixes.asm
1 change: 1 addition & 0 deletions patches/rom_map/Bank 87.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
C964 - CA7D: ; Area FX.asm
2 changes: 2 additions & 0 deletions patches/rom_map/Bank 88.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
EE32 - EE48: ; Fake Lava.asm
F600 - FAFE: ; Scrolling Sky v1.6.asm
10 changes: 3 additions & 7 deletions patches/rom_map/Bank 89.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
$9100 - $9200: walljump boots plm graphics
$9200 - $9600: [mosaic] Item Loading
$9600 - $9700: spark booster plms graphics
$9700 - $9800: blue booster plm graphics
$AF60 - $B0C0: Area FX.asm
$B0C0 - $B100: decompression.asm
$B100 - $B200: nothing item graphics (zeros, used only for Bomb Torizo Room; nothing_item.asm)
AF00 - AF31: ; hud_expansion_opaque.asm
AF60 - B0BA: ; Area FX.asm
B100 - B200: nothing item graphics (zeros, used only for Bomb Torizo Room; nothing_item.asm)
7 changes: 3 additions & 4 deletions patches/rom_map/Bank 8B.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
0000 - F75F: used by vanilla game
F760 - F770: used by `escape_items.asm` for adjusting item percent calculation
F770 - F900: used by `credits.asm`
F900 - F940: used by `escape.asm` for adjusting item percent calculation
F760 - F769: ; escape_items.asm
F770 - F893: ; credits.asm
F900 - F91B: ; escape.asm
1 change: 0 additions & 1 deletion patches/rom_map/Bank 8C.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
0000 - F3E8: Used by vanilla
F3E9 - ????: Used for updated spritemap on title screen
35 changes: 16 additions & 19 deletions patches/rom_map/Bank 8F.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
0000-E99B: Used by vanilla game for Room headers, PLM sets, door & setup ASMs, etc.
E99B-EB00: saveload.asm
EB00-EBC0: [FREE]
EBC0-EBF0: pause_menu_objectives.asm
EBF0-EDC0: [FREE]
EDC0-EE00: transition_reveal.asm
EE00-EE10: mb_left_entrance.asm
EE10-F600: Used for custom door ASMs
F600-F700: Used by `escape` patch
F700-F7F0: Used by `gray_doors` patch
F7F0-F800: boss_exit.asm
F800-F900: Used by `escape_autosave` patch
F900-FE00: Used for tileset table & pointers for area-themed palettes
FE00-FE40: Toilet PLMs
FE40-FE50: saveload.asm
FE50-FE80: load_plms_early.asm
FE80-FF00: hazard_markers.asm
FF00-FFA0: mb_left_entrance.asm
FFA0-FFFF: [FREE]
E99B - EAF3: ; saveload.asm
EB00 - EBBF: [FREE]
EBF0 - EDBF: [FREE]
EDC0 - EDD2: ; transition_reveal.asm
EE10 - F5FF: Used for custom door ASMs
F600 - F6F1: ; escape.asm
F700 - F70D: ; gray_doors.asm
F7F0 - F7F3: ; boss_exit.asm
F800 - F88B: ; escape_autosave.asm
F900 - FDFF: Used for tileset table & pointers for area-themed palettes
FE00 - FE3F: Toilet PLMs
FE40 - FE4D: ; saveload.asm
FE50 - FE78: ; load_plms_early.asm
FE80 - FE84: ; extra_setup.asm
FF00 - FF91: ; mb_left_entrance.asm
FFA0 - FFFF: [FREE]
22 changes: 10 additions & 12 deletions patches/rom_map/Bank 90.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
$F63A - $F680: unexplore.asm
$F680 - $F700: complementary_suits.asm
$F700 - $F800: map_progress_maintain.asm
$F800 - $F880: momentum_conservation.asm
$F880 - $F900: walljump_item.asm
$F900 - $F910: escape_timer.asm
$F980 - $FA00: respin.asm
$FA00 - $FC00: map_progress_maintain.asm (list of cross-area tiles to reveal)
$FC00 - $FC10: Fake Lava.asm
$FC10 - $FC20: crash_handle_yapping.asm
$FC20 - $FC40: remove_spikesuit.asm
$FC40 - $FD00: split_speed.asm
F63A - F65D: ; unexplore.asm
F680 - F6B2: ; complementary_suits.asm
F700 - F7FC: ; map_progress_maintain.asm
F800 - F84D: ; momentum_conservation.asm
F900 - F90C: ; escape_timer.asm
F980 - F99E: ; respin.asm
FC00 - FC0F: ; Fake Lava.asm
FC10 - FC1C: ; crash_handle_yapping.asm
FC20 - FC3A: ; remove_spikesuit.asm
FC40 - FCB7: ; split_speed.asm
5 changes: 1 addition & 4 deletions patches/rom_map/Bank 91.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
95bc - 965a: {unused vanilla code - demo instructions} - crash_handle_xmode.asm
F7F4 - F88C: {unused vanilla code} - split_speed.asm
FC42 - FC66: {unsued vanilla code} - split_speed.asm
FFEE - FFFE: mosaic\fake lava.asm
FFEE - FFFD: ; Fake Lava.asm
2 changes: 1 addition & 1 deletion patches/rom_map/Bank 93.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
F61D - F700: screw_attack.asm (could go in any bank)
F61D - F700: ; screw_attack.asm (could go in any bank)
4 changes: 2 additions & 2 deletions patches/rom_map/Bank 94.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
B1A0 - B1B0: map_area.asm
B1B0 - C800: [FREE]
B1A0 - B1AB: ; map_area.asm
B1B0 - C7FF: [FREE]
6 changes: 3 additions & 3 deletions patches/rom_map/Bank A0.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
F820 - F830: vanilla_bugfixes.asm
F900 - FA00: gray_doors.asm
FE00 - FFFF: fast_reload.asm
F820 - F82B: ; vanilla_bugfixes.asm
F900 - F972: ; gray_doors.asm
FE00 - FF1F: ; fast_reload.asm
7 changes: 3 additions & 4 deletions patches/rom_map/Bank A1.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
0000 - EBD0: Used by vanilla game
F000 - F400: Used by `escape.asm`
F400 - F600: Used by `new_game.asm`
F600 - F640: Used by `escape_autosave.asm`
F000 - F391: ; escape.asm
F400 - F587: ; new_game.asm
F600 - F622: ; escape_autosave.asm
3 changes: 2 additions & 1 deletion patches/rom_map/Bank A2.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
F4A0 - F4B0: fix_choot.asm
F4A0 - F4AB: ; fix_choot.asm
F4B0 - F4D0: ; everything_respawns.asm
F4B0 - FFFF: [FREE]
3 changes: 1 addition & 2 deletions patches/rom_map/Bank A3.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
0000 - F311: vanilla
F320 - F360: elevators_speed
F320 - F34A: ; elevators_speed.asm
Loading
Loading