You've already forked Diddy-Kong-Racing
mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-03-10 11:36:09 -07:00
* First pass * Fix n64crc and add submodules properly * Fix other versions * Match func_8005B818 for v80 code. * Formatting * Fix build for JPN in last commit. Still broken in post v77 roms though. * Fix builds for other versions. * Match load_menu_text for other versions. * Fix progress script * update m2c * Modify asset tools to remove the LD script code. * Fix asm file macro inclue * Get a working splat version for us_1.0 to build from the assets tool. * update asm differ * Update tools again * Fix the makefile to only compile assets when requested. This will build all versions successfully, and compile assets for us_1.0 when requested. * First round of suggestions * Small cleanup * Fix the gcc_generate.py path. * Make entrypointThreadStack * Small addition to the last commit * "Fix" score script. Still need to fix the score values themselves, but at least it runs and is kind of close. * Much closer matching score script * Fix the splat version due to a breaking change in 0.33.0 for this repo for now. * Fix the main function name * Add gitignore entries * Fix the padding problem to be handled by objcopy instead of a binary pad from splat. * Update the README and change dependencies to setup. * Have a hasm header that can be tweaked. * Still calculate the checksum on no_verify builds or they won't work. * Add support for boot_custom.bin * Fix custom boot ld code. * Fix score script * Fix gcc building. * Update m2c * Fix warning, stop ignoring mod assets, and add some handy make rules. * Uggh, serves me right for not testing. * First stab at modifiable entrypoint. * Fix typo, and small README change * Stop n64crd from defaulting to returning 6105, so we can properly fail if the CIC checksum fails. Also, fix the * Extract custom boot script * Update automated scripts. * Woops, fixed the MAXCONTROLLERS thing now. * Add the method for building binutils back. Sorry! * Only use -m32 when the longbit says we're on a 64 bit platform. * Woops.... * Hopefully fix arm detection for raspi ido downloads.
45 lines
1.0 KiB
Python
Executable File
45 lines
1.0 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import sys
|
|
|
|
NBYTES = 0x120000
|
|
|
|
def get_files(rom_file, mask_file):
|
|
total = 0
|
|
value = 0
|
|
while True:
|
|
# Read a block of bytes instead of a single byte
|
|
total = rom_file.read(4096)
|
|
if not total:
|
|
break
|
|
value += len(total)
|
|
mask_file.write(total)
|
|
return value
|
|
|
|
def write_dummy(out_file, n):
|
|
|
|
# Write in blocks of 4096 bytes instead of 1 byte
|
|
for _ in range(n//4096):
|
|
out_file.write(b'\xff' * 4096)
|
|
|
|
# write remaining bytes
|
|
out_file.write(b'\xff' * (n % 4096))
|
|
|
|
def main():
|
|
if len(sys.argv) != 3:
|
|
print("CopyRom ROM_file MASK_file", file=sys.stderr)
|
|
sys.exit(1)
|
|
try:
|
|
with open(sys.argv[1], 'rb') as rom_file, open(sys.argv[2], 'wb') as mask_file:
|
|
total = get_files(rom_file, mask_file)
|
|
if total < NBYTES:
|
|
write_dummy(mask_file, NBYTES - total)
|
|
sys.exit(1)
|
|
except OSError as e:
|
|
print(e, file=sys.stderr)
|
|
sys.exit(1)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|