fusee_cpp: implement cpu startup

This commit is contained in:
Michael Scire 2021-09-01 18:10:48 -07:00 committed by SciresM
parent 648ad51056
commit 40e2d4bbe6
12 changed files with 282 additions and 19 deletions

View file

@ -14,6 +14,7 @@ def read_file(fn):
return f.read()
def pad(data, size):
assert len(data) <= size
return (data + '\x00' * size)[:size]
def get_overlay(program, i):
@ -36,20 +37,20 @@ def main(argc, argv):
with open('../../fusee-boogaloo%s.bin' % target, 'wb') as f:
# TODO: Write header
f.write('\xCC'*0x800)
# TODO: Write warmboot
f.write('\xCC'*0x1800)
# Write warmboot
f.write(pad(read_file('../../../../exosphere/warmboot%s.bin' % target), 0x1800))
# Write TSEC Keygen
f.write(pad(read_file('../../tsec_keygen/tsec_keygen.bin'), 0x2000))
# TODO: Write Mariko Fatal
f.write('\xCC'*0x1C000)
# Write Mariko Fatal
f.write(pad(read_file('../../../../exosphere/mariko_fatal%s.bin' % target), 0x1C000))
# Write Erista MTC
f.write(get_overlay(data, 1))
# Write Mariko MTC
f.write(get_overlay(data, 2))
# TODO: Write exosphere
f.write('\xCC'*0xE000)
# TODO: Write mesosphere
f.write('\xCC'*0xAA000)
# Write exosphere
f.write(pad(read_file('../../../../exosphere/exosphere%s.bin' % target), 0xE000))
# Write mesosphere
f.write(pad(read_file('../../../../mesosphere/mesosphere%s.bin' % target), 0xAA000))
# TODO: Write kips
f.write('\xCC'*0x300000)
# Write Splash Screen