From 1956d545393582788dc7f9553dbd87e5d9e017d4 Mon Sep 17 00:00:00 2001 From: Larry Date: Fri, 5 May 2017 22:08:33 -0500 Subject: [PATCH] recomompilable disassembly started Former-commit-id: ac8edfca69f06125b1c4f9c93a1c9d2916a14a33 [formerly 21a911aefbba5768043a662bca7ec67a5d7802ff] Former-commit-id: 4bb696109323e50df7a453af3ebf3b00f1c66f60 --- ...de1000_21990_remap_70000400.REMOVED.git-id | 1 + disassembly/GE007.elf.asm | 4 + disassembly/GE007.rom.asm | 8 ++ disassembly/N64.INC.REMOVED.git-id | 1 + disassembly/boot.asm.REMOVED.git-id | 1 + disassembly/elf/ELF.INC.REMOVED.git-id | 1 + disassembly/elf/Zelda_elf.asm | 12 +++ disassembly/elf/elf_header.asm | 22 ++++ .../elf/program_header.asm.REMOVED.git-id | 1 + disassembly/elf/program_sections.asm | 42 ++++++++ .../elf/section_header.asm.REMOVED.git-id | 1 + disassembly/elf/shstrtab.asm | 94 ++++++++++++++++++ disassembly/rodata/021990.bin.REMOVED.git-id | 1 + disassembly/rodata/rodata.asm | 5 + disassembly/rodata/rsp.bin.REMOVED.git-id | 1 + disassembly/rom/Code_boot_A4000040 | Bin 0 -> 640 bytes .../Code_boot_remap_80000000.REMOVED.git-id | 1 + disassembly/rom/romheader.asm | 40 ++++++++ 18 files changed, 236 insertions(+) create mode 100644 disassembly/Code1000_21990_remap_70000400.REMOVED.git-id create mode 100644 disassembly/GE007.elf.asm create mode 100644 disassembly/GE007.rom.asm create mode 100644 disassembly/N64.INC.REMOVED.git-id create mode 100644 disassembly/boot.asm.REMOVED.git-id create mode 100644 disassembly/elf/ELF.INC.REMOVED.git-id create mode 100644 disassembly/elf/Zelda_elf.asm create mode 100644 disassembly/elf/elf_header.asm create mode 100644 disassembly/elf/program_header.asm.REMOVED.git-id create mode 100644 disassembly/elf/program_sections.asm create mode 100644 disassembly/elf/section_header.asm.REMOVED.git-id create mode 100644 disassembly/elf/shstrtab.asm create mode 100644 disassembly/rodata/021990.bin.REMOVED.git-id create mode 100644 disassembly/rodata/rodata.asm create mode 100644 disassembly/rodata/rsp.bin.REMOVED.git-id create mode 100644 disassembly/rom/Code_boot_A4000040 create mode 100644 disassembly/rom/Code_boot_remap_80000000.REMOVED.git-id create mode 100644 disassembly/rom/romheader.asm diff --git a/disassembly/Code1000_21990_remap_70000400.REMOVED.git-id b/disassembly/Code1000_21990_remap_70000400.REMOVED.git-id new file mode 100644 index 0000000..f2f932d --- /dev/null +++ b/disassembly/Code1000_21990_remap_70000400.REMOVED.git-id @@ -0,0 +1 @@ +8fe43b2810737d05df566884e186a04f875cdcf1 \ No newline at end of file diff --git a/disassembly/GE007.elf.asm b/disassembly/GE007.elf.asm new file mode 100644 index 0000000..a595311 --- /dev/null +++ b/disassembly/GE007.elf.asm @@ -0,0 +1,4 @@ +arch n64.cpu +endian msb +output "GE007.n64", create +origin $00000000 diff --git a/disassembly/GE007.rom.asm b/disassembly/GE007.rom.asm new file mode 100644 index 0000000..611af67 --- /dev/null +++ b/disassembly/GE007.rom.asm @@ -0,0 +1,8 @@ +arch n64.cpu +endian msb +output "GE007.n64", create +include "N64.INC" +origin $00000000 + +include "rom/romheader.asm" +include "boot.asm" diff --git a/disassembly/N64.INC.REMOVED.git-id b/disassembly/N64.INC.REMOVED.git-id new file mode 100644 index 0000000..2229a51 --- /dev/null +++ b/disassembly/N64.INC.REMOVED.git-id @@ -0,0 +1 @@ +28ede0309f90c228e3812931a8dc3740bdf44ca0 \ No newline at end of file diff --git a/disassembly/boot.asm.REMOVED.git-id b/disassembly/boot.asm.REMOVED.git-id new file mode 100644 index 0000000..e89b065 --- /dev/null +++ b/disassembly/boot.asm.REMOVED.git-id @@ -0,0 +1 @@ +40be2b2715fbcd797ea0917ac544fb102eb9c7fe \ No newline at end of file diff --git a/disassembly/elf/ELF.INC.REMOVED.git-id b/disassembly/elf/ELF.INC.REMOVED.git-id new file mode 100644 index 0000000..9ae31f8 --- /dev/null +++ b/disassembly/elf/ELF.INC.REMOVED.git-id @@ -0,0 +1 @@ +f2df7e98031c1f0872b2ba1f7c753f435329e11f \ No newline at end of file diff --git a/disassembly/elf/Zelda_elf.asm b/disassembly/elf/Zelda_elf.asm new file mode 100644 index 0000000..8d1c7b6 --- /dev/null +++ b/disassembly/elf/Zelda_elf.asm @@ -0,0 +1,12 @@ +arch n64.cpu +endian msb +output "OOTMQ_D.ELF", create +//fill 67108864 +include "../N64.INC" +include "ELF.INC" + +include "elf_header.asm" +include "program_header.asm" +include "program_sections.asm" +include "shstrtab.asm" +include "section_header.asm" diff --git a/disassembly/elf/elf_header.asm b/disassembly/elf/elf_header.asm new file mode 100644 index 0000000..85b66ae --- /dev/null +++ b/disassembly/elf/elf_header.asm @@ -0,0 +1,22 @@ +origin $00000000; +elf_header_start: +dw $7F454C46 //EI_MAG +db $01 //EI_CLASS +db $02 //EI_DATA +dw $01000000 //EI_VERSION +dw $00000000 //PAD +dh $0000 //PAD +dh ET_EXEC //e_type ET_EXEC +dh EM_MIPS //e_machine EM_MIPS +dw EV_CURRENT //e_version EV_CURRENT +dw $00000000 //e_entry +dw program_header_start //e_phoff +dw section_header_start //e_shoff +dw $00000000 //e_flags +dh elf_header_end - elf_header_start //e_ehsize +dh E_PHENTSIZE //e_phentsize +dh E_PHNUM //e_phnum +dh E_SHENTSIZE //e_shentsize +dh E_SHNUM //e_shnum +dh $000C //e_shstrndx +elf_header_end: diff --git a/disassembly/elf/program_header.asm.REMOVED.git-id b/disassembly/elf/program_header.asm.REMOVED.git-id new file mode 100644 index 0000000..2361167 --- /dev/null +++ b/disassembly/elf/program_header.asm.REMOVED.git-id @@ -0,0 +1 @@ +f23b4776d8739c82c1f2da6e4cfe557e0c3950c9 \ No newline at end of file diff --git a/disassembly/elf/program_sections.asm b/disassembly/elf/program_sections.asm new file mode 100644 index 0000000..1e7656c --- /dev/null +++ b/disassembly/elf/program_sections.asm @@ -0,0 +1,42 @@ +origin $00010000; +program_reginfo_start: +dw $FFFFFFFE +dw $00000000 +dw $57555757 +dw $00000000 +dw $00000000 +dw $00000000 +program_reginfo_end: + +origin $00020000; +program_rsp_cfb_start: +dw $00 +program_rsp_cfb_end: + +origin $00020460; +program_boot_start: +insert "boot.zdata" +program_boot_end: + +origin $0003CE60; +program_code_start: +//insert "code.zdata" +dw $00 +program_code_end: + +origin $00060000; +program_dmadata_start: +insert "dmadata.zdata" +program_dmadata_end: + +origin $00070000; +program_cfb_start: +dw $00 +program_cfb_end: + +origin $0007B000; +program_kbuffer_start: +insert "kbuffer.bin" +program_kbuffer_end: + + diff --git a/disassembly/elf/section_header.asm.REMOVED.git-id b/disassembly/elf/section_header.asm.REMOVED.git-id new file mode 100644 index 0000000..4f17560 --- /dev/null +++ b/disassembly/elf/section_header.asm.REMOVED.git-id @@ -0,0 +1 @@ +90ed4d661b5989226dd7fa47a4b205bcfad54492 \ No newline at end of file diff --git a/disassembly/elf/shstrtab.asm b/disassembly/elf/shstrtab.asm new file mode 100644 index 0000000..5862146 --- /dev/null +++ b/disassembly/elf/shstrtab.asm @@ -0,0 +1,94 @@ +shstrtab_start: +db $00 + +name_symtab: +db ".symtab" +db $00 + +name_strtab: +db ".strtab" +db $00 + +name_shstrtab: +db ".shstrtab" +db $00 + +name_boot: +db "..boot" +db $00 + +name_boot_bss: +db "..boot.bss" +db $00 + +name_code: +db "..code" +db $00 + +name_code_bss: +db "..code.bss" +db $00 + +name_cfb: +db "..cfb" +db $00 + +name_cfb_bss: +db "..cfb.bss" +db $00 + +name_rsp_cfb: +db "..rsp_cfb" +db $00 + +name_rsp_cfb_bss: +db "..rsp_cfb.bss" +db $00 + +name_kbuffer: +db "..kbuffer" +db $00 + +name_kbuffer_bss: +db "..kbuffer.bss" +db $00 + +name_reginfo: +db ".reginfo" +db $00 + +name_debug: +db ".debug" +db $00 + +name_debug_srcinfo: +db ".debug_srcinfo" +db $00 + +name_debug_aranges: +db ".debug_aranges" +db $00 + +name_debug_pubnames: +db ".debug_pubnames" +db $00 + +name_debug_sfnames: +db ".debug_sfnames" +db $00 + +name_line: +db ".line" +db $00 + +name_comment: +db ".comment" +db $00 + +name_mdebug: +db ".mdebug" +db $00 + +shstrtab_end: +db $00, $00, $00 + diff --git a/disassembly/rodata/021990.bin.REMOVED.git-id b/disassembly/rodata/021990.bin.REMOVED.git-id new file mode 100644 index 0000000..c473cda --- /dev/null +++ b/disassembly/rodata/021990.bin.REMOVED.git-id @@ -0,0 +1 @@ +15dbcce479f33fa19157b68ee0c3e0d890f3e33f \ No newline at end of file diff --git a/disassembly/rodata/rodata.asm b/disassembly/rodata/rodata.asm new file mode 100644 index 0000000..70b389d --- /dev/null +++ b/disassembly/rodata/rodata.asm @@ -0,0 +1,5 @@ +arch n64.cpu +endian msb +output "rodata.bin", create +base $80020D90 +insert rsp.bin, "rsp.bin" diff --git a/disassembly/rodata/rsp.bin.REMOVED.git-id b/disassembly/rodata/rsp.bin.REMOVED.git-id new file mode 100644 index 0000000..3efe710 --- /dev/null +++ b/disassembly/rodata/rsp.bin.REMOVED.git-id @@ -0,0 +1 @@ +033f25d83b85eaf8b426b5670d03eabc0e0206b9 \ No newline at end of file diff --git a/disassembly/rom/Code_boot_A4000040 b/disassembly/rom/Code_boot_A4000040 new file mode 100644 index 0000000000000000000000000000000000000000..d46b80294135e6ec69d328db34a3b18dc4865c2d GIT binary patch literal 640 zcmZWnL2DCH5dL2FMQ7{QZc4JIDEO%RYTG2T4pSi!XU3Blx` z$aVv2+e;yb9&+>-^qeBXUIYF(a?RT0hq*J!O)zcgH^9CRoBEJ(?V)w`+wG!=RPoE< z6d>m7%m<7S*C1W|-yG)eGVeI`H~xFy7aQqo!1zr{_I5kzGf-+#H~s*Oxkpa}eQh=- zIWX5|i|2{P-1%IaTa0fzJkq8s+@#4tRQ)55dz-I zm+TL4@)S~kN3afY<>H}5$NjUnT;nUa`G#M4M#>A(JBYInkdH1vu^*P4q1jfWhrrbs zB6u`cUTaaBA*jk?rYeVHh0T%OehzV?&s^x@F|o!WYg{89{$x$!zU;U6iXx^e8oS`D zaqs&A-it5sJ-gb+Q1~FBHJL8abUj%+NNBV4-5g@kS0aB^noc2}yaP2*T(0K4MA}7Q zi0|Bm^yW*xb5kF`=eyC&XU)jvopc~~5(LLnpxn6%v5v~faYqZcFGxgI@w@uZ{{yI9 BiirRK literal 0 HcmV?d00001 diff --git a/disassembly/rom/Code_boot_remap_80000000.REMOVED.git-id b/disassembly/rom/Code_boot_remap_80000000.REMOVED.git-id new file mode 100644 index 0000000..b822d50 --- /dev/null +++ b/disassembly/rom/Code_boot_remap_80000000.REMOVED.git-id @@ -0,0 +1 @@ +08e4f738d084f5c18d92d9c40b6d8817b3be3f73 \ No newline at end of file diff --git a/disassembly/rom/romheader.asm b/disassembly/rom/romheader.asm new file mode 100644 index 0000000..0882b0a --- /dev/null +++ b/disassembly/rom/romheader.asm @@ -0,0 +1,40 @@ +//============ +// N64 Header +//============ +// PI_BSB_DOM1 + db $80 // Initial PI_BSB_DOM1_LAT_REG Value + db $37 // Initial PI_BSB_DOM1_PGS_REG Value + db $12 // Initial PI_BSB_DOM1_PWD_REG Value + db $40 // Initial PI_BSB_DOM1_PGS_REG Value + +// CLOCK RATE + dw $000F // Initial Clock Rate + +// VECTOR + dw Start // Boot Address Offset + dw $1447 // Release Offset + +// COMPLEMENT CHECK & CHECKSUM +// hardcode so i know if something changes + dw $DCBC50D1 // CRC1: COMPLEMENT CHECK + dw $09FD1AA3 // CRC2: CHECKSUM + + dd 0 // UNUSED + +// PROGRAM TITLE (27 Byte ASCII String, Use Spaces For Unused Bytes) + db "GOLDENEYE " +// "123456789012345678901234567" + db $00,$00,$00,$00,$00,$00,$00 +// DEVELOPER ID CODE + db "N" // "N" = Nintendo + +// CARTRIDGE ID CODE + db "GE" // UNUSED + +// COUNTRY CODE + db "E" // "D" = Germany, "E" = USA, "J" = Japan, "P" = Europe, "U" = Australia + + db $0 // UNUSED + +insert "Code_boot_A4000040" +insert "Code_boot_remap_80000000"