From 45447313ca82fd35edbf1f647fab3c02c4941e85 Mon Sep 17 00:00:00 2001 From: Larry Date: Sat, 6 May 2017 07:53:11 -0500 Subject: [PATCH] a few changes, add back files for elf instead of rom, no work has been put into them yet Former-commit-id: d1308b46dce1abc155281996fa5cc1ef8473b379 [formerly 3f214ff74e2681817415f0768a4c7c0d80016dd2] Former-commit-id: 829b81b30b19f002bada1343ddcba1133526e07c --- disassembly/GE007.elf.asm | 17 ++++ disassembly/GE007.sym | 39 ++++++++ disassembly/boot.asm.REMOVED.git-id | 2 +- disassembly/elf/ELF.INC.REMOVED.git-id | 1 + 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 +++++++++++++++++++ filelist.txt.REMOVED.git-id | 2 +- readme.md | 2 +- 11 files changed, 220 insertions(+), 3 deletions(-) create mode 100644 disassembly/GE007.elf.asm create mode 100644 disassembly/GE007.sym create mode 100644 disassembly/elf/ELF.INC.REMOVED.git-id 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 diff --git a/disassembly/GE007.elf.asm b/disassembly/GE007.elf.asm new file mode 100644 index 0000000..f41cb38 --- /dev/null +++ b/disassembly/GE007.elf.asm @@ -0,0 +1,17 @@ +arch n64.cpu +endian msb +output "GE007.elf", create +origin $00000000 + +include "N64.INC" +include "elf/ELF.INC" + +include "elf/elf_header.asm" +include "elf/program_header.asm" +include "elf/program_sections.asm" +include "elf/shstrtab.asm" +include "elf/section_header.asm" + +//Not for awhile, but doing this may be a necessary evil to deal with compressed +//vs non compressed data in address space. Files are copied with little to no +//change from my ootmqd disassembly so don't expect any accurate info yet. diff --git a/disassembly/GE007.sym b/disassembly/GE007.sym new file mode 100644 index 0000000..0654e85 --- /dev/null +++ b/disassembly/GE007.sym @@ -0,0 +1,39 @@ +80000400 Start +80000410 looptillclear +80000450 establishrootTLB +700004bc set_rodata_vaddr +700004c8 set_rodata_rom_start +700004d4 set_rodata_rom_end +700004e0 setRareZip_start +700004ec setRareZip_end +700004f8 redirecttodecompressfile +70000510 init +70000574 loop +7000058c do_decompress +700005f0 wait_pi_ready +70000604 init_memory_tlb +7000062c copy_TLB_InvalidHit_handler +70000674 init_TLB_indicie_2_to_20 +700006f0 stack_init +70001b60 tlb_entries +7000cf90 osPiRawStartDma +7000d320 osWritebackDCacheAll +7000d350 osInvalICache +7000d3d0 osUnmapTLB +7000d410 __osGetFpcCsr +7000d420 __osSetFpcCsr +7000d430 osCreateThread +7000d580 osStartThread +70200000 RareZip_vaddr +7020141c decompressfile +80020d90 rodata_start +8005d2e0 rodata_end +8005d2e0 bss_start +8008e360 bss_end +80300000 decompression_buffer +803ab400 sp_boot +803ab410 sp_rmon +803ab710 sp_idle +803ab750 sp_shed +803ab950 sp_main +803b3950 sp_audi diff --git a/disassembly/boot.asm.REMOVED.git-id b/disassembly/boot.asm.REMOVED.git-id index 2a44049..7a87c20 100644 --- a/disassembly/boot.asm.REMOVED.git-id +++ b/disassembly/boot.asm.REMOVED.git-id @@ -1 +1 @@ -cf08637985e478df3f5d7d09992a63a33b0fe394 \ No newline at end of file +189c63b6c85410327b1fd7a71d7fc0069edcd7fe \ 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/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/filelist.txt.REMOVED.git-id b/filelist.txt.REMOVED.git-id index a69db1a..9162cbb 100644 --- a/filelist.txt.REMOVED.git-id +++ b/filelist.txt.REMOVED.git-id @@ -1 +1 @@ -f8645403d610cfe3173d5dfc2b6a4b44abb366bb \ No newline at end of file +8a23c376ea2f7fe11669c1f441981a12312608ff \ No newline at end of file diff --git a/readme.md b/readme.md index aecd806..90718a0 100644 --- a/readme.md +++ b/readme.md @@ -4,7 +4,7 @@ not sure what to do about compressed rodata yet. but to build: cd disassembly -bass GE007.rom.asm +bass -sym GE007.sym GE007.rom.asm