Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- import N64
- import argparse, os
- cart = N64.Cart(b'\x807\x12@\x00\x00\x00\x0f\x80\x00\x04\x00\x00\x00\x14D\xff\xff\xff\xff'
- b'\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00DOGEmu self-unloading bootst'
- b'rap\x00@\x80h\x00@\x80H\x00@\x80X\x00<\x08\xa4p%\x08\x00\x00\x8d\t\x00\x0c'
- b"\x15 \x00\xed\x00\x00\x00\x00'\xbd\xff\xe8\xaf\xb3\x00\x00\xaf\xb4\x00\x04"
- b'\xaf\xb5\x00\x08\xaf\xb6\x00\x0c\xaf\xb7\x00\x10<\x08\xa4p%\x08\x00\x00'
- b'<\n\xa3\xf8<\x0b\xa3\xf0<\x0c\xa40%\x8c\x00\x004\t\x00@\xad\t\x00\x04'
- b'$\x11\x1f@\x00\x00\x00\x00"1\xff\xff\x16 \xff\xfd\x00\x00\x00\x00'
- b'\xad\x00\x00\x084\t\x00\x14\xad\t\x00\x0c\xad\x00\x00\x00$\x11\x00\x04'
- b'\x00\x00\x00\x00"1\xff\xff\x16 \xff\xfd\x00\x00\x00\x004\t\x00\x0e'
- b'\xad\t\x00\x00$\x11\x00 "1\xff\xff\x16 \xff\xfe4\t\x01\x0f\xad\x89\x00\x00'
- b'<\t\x18\x085)(8\xadI\x00\x08\xad@\x00\x14<\t\x80\x00\xadI\x00\x04\x00\x00h%'
- b'\x00\x00p%<\x0f\xa3\xf0\x00\x00\xc0%<\x19\xa3\xf0<\x16\xa0\x00\x00\x00\xb8%'
- b"<\x06\xa3\xf0<\x07\xa0\x00\x00\x00\x90%<\x14\xa0\x00'\xbd\xff\xb8"
- b'\x03\xa0\xf0%<\x10\xa40\x8e\x10\x00\x04<\x11\x01\x01&1\x01\x01'
- b'\x16\x11\x00\x05\x00\x00\x00\x00$\x10\x02\x005q@\x00\x10\x00\x00\x03'
- b'\x00\x00\x00\x00$\x10\x04\x005q\x80\x00\xae.\x00\x04%\xf5\x00\x0c'
- b'\r\x00\x01\xde\x00\x00\x00\x00\x10@\x008\x00\x00\x00\x00\xaf\xa2\x00\x00'
- b'$\t \x00\xad\x89\x00\x00\x8d\xeb\x00\x00<\x08\xf0\xff\x01hX$\xaf\xab\x00\x04'
- b'#\xbd\x00\x08$\t\x10\x00\xad\x89\x00\x00<\x08\xb0\x19\x15h\x00\x0c'
- b'\x00\x00\x00\x00<\x08\x08\x00\x03\x08\xc0 \x030\xc8 \x030\xc8 <\x08\x00 '
- b'\x02\xc8\xb0 \x02\x88\xa0 \x00\x12\x90@"R\x00\x01\x10\x00\x00\x03'
- b'\x00\x00\x00\x00<\x08\x00\x10\x02\x88\xa0 $\x08 \x00\xad\x88\x00\x00'
- b'\x8d\xe9\x00$\x8d\xfa\x00\x00$\x08\x10\x00\xad\x88\x00\x001)\xff\xff'
- b'$\x08\x05\x00\x15(\x00\t\x00\x00\x00\x00<\x1b\x01\x00\x03[\xd0$\x17@\x00\x05'
- b'\x00\x00\x00\x00<\x08\x10\x1c5\x08\n\x04\xad\xe8\x00\x18\x10\x00\x00\x03'
- b'<\x08\x08\x0c5\x08\x12\x04\xad\xe8\x00\x18<\x08\x08\x00\x01\xc8p \x01\xf0x '
- b'\x01\xf0x %\xad\x00\x01-\xa8\x00\x08\x15\x00\xff\xc4\x00\x00\x00\x00'
- b'<\x08\xc4\x00\xadH\x00\x0c<\x08\x80\x00\xadH\x00\x04\x03\xc0\xe8%'
- b'\x00\x00\x18%\x8f\xa9\x00\x04<\x08\xb0\t\x15(\x00\x16\x00\x00\x00\x00'
- b"\xae8\x00\x04'5\x00\x0c\x8f\xa4\x00\x00#\xbd\x00\x08$\x05\x00\x01"
- b'\r\x00\x02\x90\x00\x00\x00\x00\x8e\xc8\x00\x00<\x08\x00\x08\x01\x16@ '
- b'\x8d\t\x00\x00\x8e\xc8\x00\x00<\x08\x00\x08\x01\x16@ \x8d\t\x00\x00'
- b'<\x08\x04\x00\x01\xc8p \x030\xc8 <\x08\x00\x10\x02\xc8\xb0 \x10\x00\x00!'
- b'\xae7\x00\x04$\xd5\x00\x0c\x8f\xa4\x00\x00#\xbd\x00\x08$\x05\x00\x01'
- b'\r\x00\x02\x90\x00\x00\x00\x00\x8c\xe8\x00\x00<\x08\x00\x08\x01\x07@ '
- b'\x8d\t\x00\x00<\x08\x00\x10\x01\x07@ \x8d\t\x00\x00<\x08\x00\x18\x01\x07@ '
- b'\x8d\t\x00\x00\x8c\xe8\x00\x00<\x08\x00\x08\x01\x07@ \x8d\t\x00\x00'
- b'<\x08\x00\x10\x01\x07@ \x8d\t\x00\x00<\x08\x00\x18\x01\x07@ \x8d\t\x00\x00'
- b'<\x08\x08\x00\x02\xe8\xb8 \x00\xd00 \x00\xd00 <\x08\x00 \x00\xe88 $c\x00\x01'
- b'\x00m@*\x15\x00\xff\xc3\x00\x00\x00\x00<\n\xa4p\x00\x12\x94\xc0<\t\x00\x06'
- b'5)64\x012H%\xadI\x00\x10\x8dI\x00\x10<\x08\xa0\x005\x08\x03\x00<\t\x0f\xff'
- b"5)\xff\xff\x02\xc9\xb0$\xad\x16\x00\x18\x03\xc0\xe8%'\xbd\x00H"
- b'\x8f\xb3\x00\x00\x8f\xb4\x00\x04\x8f\xb5\x00\x08\x8f\xb6\x00\x0c'
- b"\x8f\xb7\x00\x10'\xbd\x00\x18<\x08\x80\x00%\x08\x00\x00%\t@\x00%)\xff\xe0"
- b'@\x80\xe0\x00@\x80\xe8\x00\xbd\x08\x00\x00\x01\t\x08+\x14 \xff\xfd%\x08\x00 '
- b'<\x08\x80\x00%\x08\x00\x00%\t \x00%)\xff\xf0\xbd\t\x00\x00\x01\t\x08+'
- b'\x14 \xff\xfd%\x08\x00\x10\x10\x00\x00\x13\x00\x00\x00\x00<\x08\x80\x00'
- b'%\x08\x00\x00%\t@\x00%)\xff\xe0@\x80\xe0\x00@\x80\xe8\x00\xbd\x08\x00\x00'
- b'\x01\t\x08+\x14 \xff\xfd%\x08\x00 <\x08\x80\x00%\x08\x00\x00%\t \x00'
- b'%)\xff\xf0\xbd\x01\x00\x00\x01\t\x08+\x14 \xff\xfd%\x08\x00\x10<\n\xa4\x00'
- b'%J\x00\x00<\x0b\xff\xf0<\t\x00\x10\x01KP$<\x08\xa4\x00%)\xff\xff'
- b'<\x0b\xa4\x00%\x08\x04\xc0%k\x07t\x01\t@$\x01iX$<\t\xa0\x00\x01\n@%\x01jX%'
- b'%)\x00\x00\x8d\r\x00\x00%\x08\x00\x04\x01\x0b\x08+%)\x00\x04\x14 \xff\xfb'
- b'\xad-\xff\xfc<\x0c\x80\x00%\x8c\x00\x00\x01\x80\x00\x08\x00\x00\x00\x00'
- b'<\x0b\xb0\x00\x8di\x00\x08<\n\x1f\xff5J\xff\xff<\x01\xa4`\x01*H$'
- b'\xac)\x00\x00<\x08\xa4`\x8d\x08\x00\x101\x08\x00\x02U\x00\xff\xfd<\x08\xa4`'
- b'$\x08\x10\x00\x01\x0b@ \x01\n@$<\x01\xa4`\xac(\x00\x04<\n\x00\x10%J\xff\xff'
- b'<\x01\xa4`\xac*\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00<\x0b\xa4`\x8dk\x00\x101k\x00\x01\x15`\xff\xe0'
- b'\x00\x00\x00\x00<\x0b\xb0\x00\x8dd\x00\x08\x02\xc0(%<\x01]X4!\x8be'
- b"\x00\xa1\x00\x19'\xbd\xff\xe0\xaf\xbf\x00\x1c\xaf\xb0\x00\x14<\x1f\x00\x10"
- b'\x00\x00\x18%\x00\x00@%\x00\x80H%$\r\x00 \x00\x00\x10\x12$B\x00\x01\x00@8%'
- b'\x00@P%\x00@X%\x00@\x80%\x00@0%\x00@`%\x8d"\x00\x00\x00\xe2\x18!\x00g\x08+'
- b'\x10 \x00\x02\x00`(%%J\x00\x010C\x00\x1f\x01\xa3x#\x01\xe2\xc0\x06\x00bp\x04'
- b'\x01\xd8 %\x00\xc2\x08+\x00\xa08%\x01bX&\x10 \x00\x04\x02\x04\x80!'
- b'\x00\xe2\xc8&\x10\x00\x00\x02\x03&0&\x00\xc40&%\x08\x00\x04\x00Px&%)\x00\x04'
- b'\x15\x1f\xff\xe8\x01\xec`!\x00\xeap&\x01\xcb8&\x02\x06\xc0&\x03\x0c\x80&'
- b'<\x0b\xb0\x00\x8dh\x00\x10\x14\xe8\x00\x06\x00\x00\x00\x00\x8dh\x00\x14'
- b'\x16\x08\x00\x03\x00\x00\x00\x00\x04\x11\x00\x03\x00\x00\x00\x00'
- b'\x04\x11\xff\xff\x00\x00\x00\x00<\t\xa4\x08\x8d)\x00\x00\x8f\xb0\x00\x14'
- b"\x8f\xbf\x00\x1c\x11 \x00\x06'\xbd\x00 $\n\x00A<\x01\xa4\x04\xac*\x00\x10"
- b'<\x01\xa4\x08\xac \x00\x00<\x0b\x00\xaa5k\xaa\xae<\x01\xa4\x04\xac+\x00\x10'
- b'<\x01\xa40$\x08\x05U\xac(\x00\x0c<\x01\xa4\x80\xac \x00\x18<\x01\xa4P'
- b'\xac \x00\x0c<\x01\xa40$\t\x08\x00\xac)\x00\x00$\t\x00\x02<\x01\xa4`'
- b'<\x08\xa0\x005\x08\x03\x00\xac)\x00\x10\xad\x17\x00\x14\xad\x15\x00\x0c'
- b'\xad\x13\x00\x04\x12`\x00\x04\xad\x14\x00\x00<\t\xa6\x00\x10\x00\x00\x03'
- b'%)\x00\x00<\t\xb0\x00%)\x00\x00\xad\t\x00\x08<\x08\xa4\x00%\x08\x00\x00'
- b'!\t\x10\x00%\x08\x00\x04\x15\t\xff\xfe\xad\x00\xff\xfc<\x08\xa4\x00'
- b'%\x08\x10\x00!\t\x10\x00%\x08\x00\x04\x15\t\xff\xfe\xad\x00\xff\xfc'
- b'<\x0b\xb0\x00\x8di\x00\x08\x01 \x00\x08\x00\x00\x00\x00\x00\x00\x00\x00'
- b"'\xbd\xff`\xaf\xb0\x00@\xaf\xb1\x00D\x00\x00\x88%\x00\x00\x80%"
- b'\xaf\xa2\x00\x00\xaf\xa3\x00\x04\xaf\xa4\x00\x08\xaf\xa5\x00\x0c'
- b'\xaf\xa6\x00\x10\xaf\xa7\x00\x14\xaf\xa8\x00\x18\xaf\xa9\x00\x1c'
- b'\xaf\xaa\x00 \xaf\xab\x00$\xaf\xac\x00(\xaf\xad\x00,\xaf\xae\x000'
- b'\xaf\xaf\x004\xaf\xb8\x008\xaf\xb9\x00<\xaf\xb2\x00H\xaf\xb3\x00L'
- b'\xaf\xb4\x00P\xaf\xb5\x00T\xaf\xb6\x00X\xaf\xb7\x00\\\xaf\xbe\x00`'
- b'\xaf\xbf\x00d\r\x00\x02 \x00\x00\x00\x00&\x10\x00\x01*\t\x00\x04'
- b'\x15 \xff\xfb\x02"\x88!\x00\x11 \x82\r\x00\x02\x90$\x05\x00\x01\x8f\xbf\x00d'
- b'\x00\x11\x10\x82\x8f\xb1\x00D\x8f\xa3\x00\x04\x8f\xa4\x00\x08'
- b'\x8f\xa5\x00\x0c\x8f\xa6\x00\x10\x8f\xa7\x00\x14\x8f\xa8\x00\x18'
- b'\x8f\xa9\x00\x1c\x8f\xaa\x00 \x8f\xab\x00$\x8f\xac\x00(\x8f\xad\x00,'
- b'\x8f\xae\x000\x8f\xaf\x004\x8f\xb8\x008\x8f\xb9\x00<\x8f\xb0\x00@'
- b'\x8f\xb2\x00H\x8f\xb3\x00L\x8f\xb4\x00P\x8f\xb5\x00T\x8f\xb6\x00X'
- b"\x8f\xb7\x00\\\x8f\xbe\x00`\x03\xe0\x00\x08'\xbd\x00\xa0'\xbd\xff\xe0"
- b'\xaf\xbf\x00\x1c\x00\x00H%\x00\x00X%\x00\x00`%)\x9a\x00@S@\x00\x18'
- b'\x00\x00\x10%\r\x00\x02C\x01\x80 %X@\x00\x08):\x00P\x00I\xd0#\x03L\x00\x19'
- b'\x00@H%\x00\x00\xd0\x12\x01zX!\x00\x00\x00\x00):\x00P\x17@\xff\xf1'
- b'%\x8c\x00\x01\x00\x0b \x80\x00\x8b #\x00\x04 \x80\x00\x8b #\x00\x04 @'
- b'\r\x00\x02`$\x84\xfc\x90\x10\x00\x00\x03\x8f\xbf\x00\x1c\x00\x00\x10%'
- b"\x8f\xbf\x00\x1c'\xbd\x00 \x03\xe0\x00\x08\x00\x00\x00\x00'\xbd\xff\xd8"
- b'\xaf\xbf\x00\x1c\x00\x00\x10%\r\x00\x02\x90$\x05\x00\x02\x00\x00\xf0%'
- b'$\x1a\xff\xff\xae\x9a\x00\x04\x8e\x83\x00\x04\xae\x9a\x00\x00'
- b'\xae\x9a\x00\x00\x00\x00\xe0%\x00\x03\x1c\x020z\x00\x01S@\x00\x03'
- b"'\x9c\x00\x01$B\x00\x01'\x9c\x00\x01+\x9a\x00\x08\x17@\xff\xf9\x00\x03\x18B"
- b"'\xde\x00\x01+\xda\x00\nW@\xff\xef$\x1a\xff\xff\x8f\xbf\x00\x1c'\xbd\x00("
- b"\x03\xe0\x00\x08\x00\x00\x00\x00'\xbd\xff\xd8\xaf\xbf\x00\x1c\xaf\xa4\x00 "
- b"\xa3\xa0\x00'\x00\x00@%\x00\x00P%4\r\xc8\x00\x00\x00p%)\xda\x00@W@\x00\x04"
- b'\x01\xc0 %\x10\x00\x00 \x00\x00\x10%\x01\xc0 %\r\x00\x02\x90$\x05\x00\x01'
- b"\r\x00\x02\xb4'\xa4\x00'\r\x00\x02\xb4'\xa4\x00'\x93\xba\x00'$\x1b\x03 "
- b'\x8f\xa4\x00 \x03[\x00\x19\x00\x00@\x12\x01\x04\xd0#\x07C\x00\x03\x03M\xd8*'
- b'\x00\x88\xd0#\x03M\xd8*S`\x00\x04\x8f\xa4\x00 \x03@h%\x01\xc0P%\x8f\xa4\x00 '
- b'\x01\x04\xd8*S`\x00\x06\x01N\x10!%\xce\x00\x01)\xdb\x00AW`\xff\xe0)\xda\x00@'
- b"\x01N\x10!\x00\x02\x10B\x8f\xbf\x00\x1c'\xbd\x00(\x03\xe0\x00\x08"
- b"\x00\x00\x00\x00'\xbd\xff\xd80\x84\x00\xff$\x1b\x00\x018\x84\x00?"
- b'\xaf\xbf\x00\x1c\x14\xbb\x00\x03<\x0fF\x00<\x1a\x80\x00\x01\xfax%'
- b'0\x9a\x00\x01\x00\x1a\xd1\x80\x01\xfax%0\x9a\x00\x02\x00\x1a\xd3@\x01\xfax%'
- b'0\x9a\x00\x04\x00\x1a\xd5\x00\x01\xfax%0\x9a\x00\x08\x00\x1a\xd1\x00'
- b'\x01\xfax%0\x9a\x00\x10\x00\x1a\xd2\xc0\x01\xfax%0\x9a\x00 \x00\x1a\xd4\x80'
- b'\x01\xfax%$\x1b\x00\x01\x14\xbb\x00\x03\xae\xaf\x00\x00<\x1a\xa40'
- b"\xaf@\x00\x00\x8f\xbf\x00\x1c'\xbd\x00(\x03\xe0\x00\x08\x00\x00\x00\x00"
- b"'\xbd\xff\xd8\xaf\xbf\x00\x1c$\x1a \x00<\x1b\xa40\xafz\x00\x00\x00\x00\xf0%"
- b'\x8e\xbe\x00\x00$\x1a\x10\x00\xafz\x00\x00$\x1b\x00@\x03~\xd8$'
- b'\x00\x1b\xd9\x82\x00\x00\xd0%\x03[\xd0%$\x1b@\x00\x03~\xd8$\x00\x1b\xdbB'
- b'\x03[\xd0%<\x1b\x00@\x03~\xd8$\x00\x1b\xdd\x02\x03[\xd0%$\x1b\x00\x80'
- b'\x03~\xd8$\x00\x1b\xd9\x02\x03[\xd0%4\x1b\x80\x00\x03~\xd8$\x00\x1b\xda\xc2'
- b'\x03[\xd0%<\x1b\x00\x80\x03~\xd8$\x00\x1b\xdc\x82\x03[\xd0%\xa0\x9a\x00\x00'
- b"\x8f\xbf\x00\x1c'\xbd\x00(\x03\xe0\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00"
- b'\x02\x00\x10\x01@\n\x00\x88\x04@"\x02\x08\x10A\xff\x08\x08@D\x01 \x08\x7f'
- b'\x02\x04\x10\x10\x80\x84\x04 A\xfe\x08\x08@"\x01\x10\x08\x80D\x04'
- b'?\xc0\x07\x00\xc6\x08\x08\x80$\x01@\x02\x00\x10\x00\x80\x02\x00\x90\x04'
- b'@A\x8c\x03\x80~\x02\x0c\x10\x10\x80D\x02 \t\x00H\x02@\x12\x01\x10\x08\x80'
- b'\x84\x18?\x00\x7f\xe2\x00\x10\x00\x80\x04\x00 \x01\xff\x08\x00@\x02\x00'
- b'\x10\x00\x80\x04\x00?\xf0\x7f\xe2\x00\x10\x00\x80\x04\x00 \x01\xff\x08\x00'
- b'@\x02\x00\x10\x00\x80\x04\x00 \x00\x07\x00\xc6\x08\x08\x80$\x01@\x02'
- b'\x00\x10\x00\x83\xf2\x00\x90\x04@a\x8d\x03\x88@\x12\x00\x90\x04\x80$'
- b'\x01 \t\xff\xc8\x02@\x12\x00\x90\x04\x80$\x01 \x08\x07\x00\x10\x00'
- b'\x80\x04\x00 \x01\x00\x08\x00@\x02\x00\x10\x00\x80\x04\x00 \x03\x80\x00'
- b'@\x02\x00\x10\x00\x80\x04\x00 \x01\x00\x08\x00B\x02\x10\x10\x80\x82\x08'
- b'\x0f\x80@"\x02\x10 \x82\x04 "\x01 \n\x80b\x02\x08\x10 \x80\x84\x02 '
- b'\x08@\x02\x00\x10\x00\x80\x04\x00 \x01\x00\x08\x00@\x02\x00\x10\x00\x80'
- b'\x04\x00?\xf0\x80\x0c\x00p\x07@Z\x02\xc8&A1\x11\x88\x8c(aC\x04\x18 \xc0\x04@'
- b'#\x01\x14\x08\xa0D\x82"\x11\x10\x88DB"\t\x10(\x81D\x06 \x10\x0f\x01'
- b'\x86\x10\x08\x80H\x01@\n\x00P\x02\x80\x14\x00\x90\x08\x80C\x0c\x07'
- b'\x80\x7f\x82\x02\x10\x08\x80D\x02 \x11\x01\x0f\xf0@\x02\x00\x10\x00\x80'
- b'\x04\x00 \x00\x0f\x01\x86\x10\x08\x80H\x01@\n\x00P\x02\x80\x14\x10\x90H\x81C'
- b'\x0c\x07\x90\x7f\x82\x02\x10\x08\x80D\x02 !\xfe\x08 @\x82\x04\x10'
- b'\x10\x80\x84\x02 \x10\x1f\x81\x02\x10\x08\x80D\x00\x10\x00p\x00p\x00'
- b'@\x01\x10\x08\x80B\x04\x0f\xc0\x7f\xf0\x10\x00\x80\x04\x00 \x01\x00\x08'
- b'\x00@\x02\x00\x10\x00\x80\x04\x00 \x01\x00@"\x01\x10\x08\x80D\x02'
- b' \x11\x00\x88\x04@"\x01\x08\x10@\x81\x08\x07\x80@\x12\x00\x88\x08@B\x02\x08'
- b' A\x01\x10\x08\x80D\x01@\n\x00 \x01\x00\x82\x0c\x10`\x82\x8a$Q"\x89'
- b'\x14E\x14(\xa1E\n( \x81\x04\x08 @\x11\x01\x04\x10 \x80\x88\x02\x80\x08'
- b'\x00@\x05\x00D\x04\x10 \x82\x02 \x08@\x11\x01\x08\x08 \x80\x88\x04@\x14\x00'
- b'@\x02\x00\x10\x00\x80\x04\x00 \x01\x00\x7f\xe0\x01\x00\x10\x01\x00\x08\x00'
- b'\x80\x08\x00\x80\x08\x00\x80\x04\x00@\x04\x00?\xf0\x0f\x80\x82\x08\x08@'
- b'B\x02\x10\x10\x80\x84\x04 !\x01\x08\x08@A\x04\x07\xc0\x02\x000'
- b'\x02\x80\x04\x00 \x01\x00\x08\x00@\x02\x00\x10\x00\x80\x04\x00 \x01\x00'
- b'\x0f\x00\x84\x08\x10@\x80\x04\x00 \x02\x00 \x02\x00 \x02\x00 \x02'
- b'\x00\x1f\xe0\x0f\x00\x84\x08\x10@\x80\x04\x00@\x1c\x00\x10\x00@\x02\x08'
- b'\x10@\x81\x08\x07\x80\x01\x00\x18\x00\xc0\n\x00\x90\x04\x80D\x04 !'
- b'\x02\x08\x1f\xf8\x02\x00\x10\x00\x80\x1f\x81\x00\x08\x00@\x02'
- b'\x00\x17\x80\xc2\x04\x08\x00@\x02\x08\x10@\x81\x08\x07\x80\x0f\x00\x84\x08'
- b'\x10@\x82\x00\x10\x00\xbc\x06\x10 A\x02\x08\x10@\x81\x08\x07\x80?'
- b'\xc0\x02\x00 \x01\x00\x10\x00\x80\x04\x00@\x02\x00\x10\x01\x00\x08\x00@'
- b'\x02\x00\x0f\x00\x84\x08\x10@\x82\x04\x08@<\x02\x10 A\x02\x08\x10'
- b'@\x81\x08\x07\x80\x0f\x00\x84\x08\x10@\x82\x04\x10 C\x01\xe8\x00@'
- b'\x02\x08\x10@\x81\x08\x07\x80\x02\x00\x10\x00\x80\x04\x00 \x01\x00\x08\x00'
- b'@\x02\x00\x10\x00\x00\x00\x00 \x01\x00\xd8\x06\xc0\x12\x01 \x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04@"\x01\x10\x08'
- b'\x87\xff\x04@"\x01\x10\x08\x83\xff\x84@"\x01\x10\x08\x80\xc0\x06\x00'
- b'\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x80DA$\x05@\x1c\x00@\x07\x00T\x04\x90D@'
- b' \x00\x00\x00\x00\x00\x00\x80\x04\x00 \x01\x00\x08\x0f\xfe\x02\x00\x10\x00'
- b'\x80\x04\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x000\x01\x80\x04\x00@\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x0f\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'0\x01\x80\x00\x00\x00\x00\x00\x00\x00@\x04\x00@\x04\x00@\x04\x00@'
- b'\x04\x00@\x04\x00@\x04\x00@\x00\x00\x00\x00\x00\x00\x0c\x00`\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x01\x80\x0c\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00?\xf8\x00\x00\x00\x00\x03\xff\x80\x00\x00'
- b'\x00\x00\x00\x00\x07\x00D\x04\x10 \x80\x04\x00@\x04\x00@\x02\x00\x10'
- b'\x00\x00\x00\x00 \x01\x00\x07\x00\xc6\x08\x08\x80$1BJ"Q"\x89"6\x10\x02@!\x86'
- b'\x03\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00<\x03\xbf\xc04c\x07\xfc$\x02\x00\x08\xacb\x00\x00'
- b'\x0c\x00\x01S$\x08\x00\xf0\x0c\x00\x01M<\x04\x14\x00\x0c\x00\x01M'
- b'\x8dh\x00\x18\xad(\x00\x00\x0c\x00\x01S$\x08\x00\xd0\x0c\x00\x01M<\x05\x00 '
- b'$\x06\x13\xff\xac%\x00\x00$\x88\xec\x00\xac(\x00\x04\xac&\x00\x0c'
- b'\x0c\x00\x01M<\x04\x10\x00\xac%\x00\x00\xac$\x00\x04\xac&\x00\x08'
- b'\x0c\x00\x01M<\x1d\x80?\x0c\x00\x01S$\x08\x00\xf1<\x04\xa4\x00\x0c\x00\x01M'
- b'<\x05\x80\x004\x84\x10\x00\x8db\x06\x1c$\xa5\x06\x80$\x86\x01\x10\x00\x04X%'
- b'\x8c\xa8\x00\x00\x00\x00\x00\x0f\xac\x88\x00\x00\xbc\x90\x00\x00'
- b' \x84\x00\x04 \xa5\x00\x04\x14\x86\xff\xf97\xbd\xff\xf0<\x01\xa0\x00'
- b'0B\x00\xff\x00"\x18!\x90v\x05\x80\x8c4\x03\x00\x8c3\x03\x04\x8c5\x03\x0c'
- b'\x8c(\x03\x18\x8c7\x03\x14\x01`\x00\x08\xac(\x03\xf0DOGEmu20UL; thanks LaC f'
- b'or letting me pilfer your code! For use w/64drive hw1 only!\x00\x8c"\x00\x10'
- b'0C\x00\x03\x14`\xff\xfd\x00\x00\x00\x00\x03\xe0\x00\x08\x00\x00\x00\x00'
- b'\x8c"\x00\x100C\x00\x03\x14`\xff\xfd<\t\xb8\x00\x8d"\x02\x000C\xff\x00'
- b'\x14`\xff\xfa\x8c"\x00\x100C\x00\x03\x14`\xff\xfd\x00\x00\x00\x00'
- b'\x03\xe0\x00\x08\xad(\x02\x08????\xac??\x85\xdd???\xdd???????????????????'
- b'????????????????????????????????????\xdd???????????????????????????????????'
- b'?\xdd???????????????????????????????????????????????\xde??????????????????'
- b'????????????????????????????????????????????????????\x91???????x???????????'
- b'??\xdd?????????<\r\xbf\xc0\x8d\xa9\x07\xfc%\xad\x07\xc01)\x00\x80U \xff\xfc'
- b'<\r\xbf\xc0<\x0b\xb0\x002s\x00\x01\x12`\x00\x022\xf7\x00\x01<\x0b\xa6\x00'
- b'\x8d\xa8\x00<$\t\x00\x102\xd6\x00\xff2\xb5\x00\x01\x01\t@%<\t\xa4\x80'
- b'\x8d)\x00\x181)\x00\x02U \xff\xfd<\t\xa4\x80\xad\xa8\x00<<\x0c\xa4`'
- b'$\x08\x00\xff\xad\x88\x00\x14\xad\x88\x00\x18$\x08\x00\x0f\xad\x88\x00\x1c'
- b'$\x08\x00\x03\xad\x88\x00 \x8di\x00\x00<\r\xa4\x10%\x8c\x00\x001(\x00\xff'
- b'\xad\x88\x00\x14\x00\tB\x02\xad\x88\x00\x18\x00\tD\x02\xad\x88\x00\x1c'
- b'\x00\tE\x02\xad\x88\x00 \x8d\xaf\x00\x0c \x08\x0f\xc0!k\x00@1\xef\x00\x01'
- b'\x11\xe0\x00\x07%\xad\x00\x0c<\r\xa4\x10\x8d\xaf\x00\x0c%\xad\x00\x0c'
- b'1\xef\x00 U\xe0\xff\xfc<\r\xa4\x10<\r\xa4\x00\x00\x080%%\xad\x00@'
- b'\x8di\x00\x00!\x08\xff\xfc!k\x00\x04!\xad\x00\x04\x15\x00\xff\xfb'
- b'\xad\xa9\xff\xfc<\x0b\xa4\x00%k\x00@\x01`\x00\x08@\x80H\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- b'\x00\x00\x00\x00')
- Saves = (# 1: eeprom 4k
- frozenset(('NAD','NB6','NBC','NBD','NBH','NBK','NBM','NBN','NBV','NCG','NCH','NCT','NCU','NCX','ND3','NDQ','NDR','NDU','NDY','NEA','NER','NF2','NFH','NFW','NFX','NGC','NGE','NGF','NGU','NGV','NHA','NHF','NIC','NIJ','NJM','NK2','NK4','NKA','NKI','NKT','NLB','NLL','NLR','NMI','NML','NMO','NMR','NMU','NMW','NN6','NNA','NPG','NPW','NPY','NR7','NRC','NRS','NS6','NSA','NSC','NSM','NSS','NSU','NSV','NSW','NT6','NTJ','NTM','NTN','NTP','NUT','NVL','NVY','NWR','NWU','NXO',)),
- # 2: eeprom 16k
- frozenset(('N3D','NB7','NCW','NCZ','ND4','ND6','NDO','NDP','NEP','NEV','NFU','NM8','NMV','NMX','NNB','NNX','NPD','NRZ','NX7','NYS',)),
- # 3: SRAM 256Mb
- frozenset(('NA2','NAL','NB5','CFZ','NFZ','NIB','NJG','NKG','NMF','NOB','CPS','NR6','NRE','NRI','NS4','NT3','NTE','NW2','NWL','NWX','NYW','CZL','NZL')),
- # 4: FLASH 1Mb
- frozenset(('NAF','NCC','NCK','NDL','NJD','NJF','NKJ','NM6','NMQ','CP2','NPF','NPO','NPN','NRH','NSQ','NT9','NW4','NZS',)),
- # 5: Dezaemon 768Mb
- frozenset(('CDZ',)),
- # 6: Stadium FLASH
- frozenset(('NP3',)),
- )
- def main(rom=None, save=None):
- if rom is None:
- parser = argparse.ArgumentParser(description="Appends self-removing bootstrap to <file>.")
- parser.add_argument('file', type=argparse.FileType('rb'))
- parser.add_argument('save', type=int, nargs='?', default=None)
- cl = parser.parse_args()
- if cl.file is None: return
- rom = cl.file.read()
- n, e = os.path.splitext(cl.file.name)
- cl.file.close()
- save = cl.save
- else:
- with open(rom, 'rb') as f:
- n, e = os.path.splitext(f.name)
- rom = f.read()
- # Determine save type from header.
- if save is None:
- if rom[0x61F:0x620] == b'\x04':
- # Aleck64 uses 16k eeprom
- save = 2
- else:
- i = rom[0x3B:0x3E].decode(encoding='cp932',errors='replace')
- for j in range(len(Saves)):
- if i in Saves[j]:
- save = j + 1
- break
- else:
- save = 0
- # Append ROM; first block on end.
- cart.rom[0x1b] = save
- cart.rom.extend(rom[0x1400:])
- i = max(0, 0x4000000 - len(cart.rom))
- cart.rom.extend(bytes(i))
- cart.rom[0x3FFEC00:0x4000000] = rom[0:0x1400]
- cart.calccrc('6102', True)
- # TODO: For now just push out a file.
- # Eventually upload directly from here.
- with open(n + '-upload' + e, 'wb') as f:
- f.write(cart.rom)
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement