Skip to content

Commit 90fa5a9

Browse files
committed
test which roms are used for clock/timer
1 parent cf123a6 commit 90fa5a9

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

patches/zelda.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,46 @@ def _dump_roms(self):
8080
rom1 + rom2
8181
)
8282

83+
# English Link's Awakening
84+
# This rom doesn't work :(
85+
rom_addr = 0xD_2000
86+
rom_size = 0x8_0000
87+
(build_dir / "Legend of Zelda, The - Link's Awakening (en).gb").write_bytes(
88+
self.external[rom_addr : rom_addr + rom_size]
89+
)
90+
91+
def _erase_roms(self):
92+
"""Temporary for debugging, just seeing which roms impact the clock."""
93+
if False:
94+
# loz1-en is critical to clock
95+
rom_addr = 0x3_0000
96+
rom_size = 0x2_0000
97+
self.external.clear_range(rom_addr, rom_addr + rom_size)
98+
99+
if True:
100+
# loz1-jp is not critical
101+
rom_addr = 0x5_0000
102+
rom_size = 0x2_0000
103+
self.external.clear_range(rom_addr, rom_addr + rom_size)
104+
105+
if True:
106+
# loz2-en is not critical
107+
rom_addr = 0x7_0000
108+
rom_size = 0x4_0000
109+
self.external.clear_range(rom_addr, rom_addr + rom_size)
110+
111+
if True:
112+
# loz2-jp is critical to timer; only crashes if timer is started.
113+
rom_addr = 0xB_0000
114+
rom_size = 0x2_0000
115+
self.external.clear_range(rom_addr, rom_addr + rom_size)
116+
83117
def patch(self):
84118
self._dump_roms()
85119

120+
if False:
121+
self._erase_roms()
122+
86123
printi("Invoke custom bootloader prior to calling stock Reset_Handler.")
87124
self.internal.replace(0x4, "bootloader")
88125

0 commit comments

Comments
 (0)