Initial commit

This commit is contained in:
Ogre 2023-08-19 13:29:15 +02:00
parent b56c2b7abd
commit efb22202bb
11 changed files with 72606 additions and 0 deletions

39
asm/1000.s Normal file
View File

@ -0,0 +1,39 @@
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.16.3 */
# Handwritten function
glabel func_80070C00
/* 1000 80070C00 3C08800B */ lui $t0, %hi(D_800AEDB0)
/* 1004 80070C04 2508EDB0 */ addiu $t0, $t0, %lo(D_800AEDB0)
/* 1008 80070C08 3C090004 */ lui $t1, %hi(D_3AE70)
/* 100C 80070C0C 2529AE70 */ addiu $t1, $t1, %lo(D_3AE70)
.L80070C10:
/* 1010 80070C10 AD000000 */ sw $zero, 0x0($t0)
/* 1014 80070C14 AD000004 */ sw $zero, 0x4($t0)
/* 1018 80070C18 21080008 */ addi $t0, $t0, 0x8 # handwritten instruction
/* 101C 80070C1C 2129FFF8 */ addi $t1, $t1, -0x8 # handwritten instruction
/* 1020 80070C20 1520FFFB */ bnez $t1, .L80070C10
/* 1024 80070C24 00000000 */ nop
/* 1028 80070C28 3C0A8008 */ lui $t2, %hi(func_8007F880)
/* 102C 80070C2C 254AF880 */ addiu $t2, $t2, %lo(func_8007F880)
/* 1030 80070C30 3C1D800C */ lui $sp, %hi(D_800C6D60)
/* 1034 80070C34 01400008 */ jr $t2
/* 1038 80070C38 27BD6D60 */ addiu $sp, $sp, %lo(D_800C6D60)
/* 103C 80070C3C 00000000 */ nop
/* 1040 80070C40 00000000 */ nop
/* 1044 80070C44 00000000 */ nop
/* 1048 80070C48 00000000 */ nop
/* 104C 80070C4C 00000000 */ nop
/* 1050 80070C50 00000000 */ nop
/* 1054 80070C54 00000000 */ nop
/* 1058 80070C58 00000000 */ nop
/* 105C 80070C5C 00000000 */ nop
.size func_80070C00, . - func_80070C00

51962
asm/1060.s Normal file

File diff suppressed because it is too large Load Diff

18838
asm/data/2E570.data.s Normal file

File diff suppressed because it is too large Load Diff

1442
asm/data/3F1B0.bss.s Normal file

File diff suppressed because it is too large Load Diff

16
asm/header.s Normal file
View File

@ -0,0 +1,16 @@
.section .data
.word 0x80371240 /* PI BSB Domain 1 register */
.word 0x0000000F /* Clockrate setting */
.word 0x80070C00 /* Entrypoint address */
.word 0x0000144A /* Revision */
.word 0xE6419BC5 /* Checksum 1 */
.word 0x69011DE3 /* Checksum 2 */
.word 0x00000000 /* Unknown 1 */
.word 0x00000000 /* Unknown 2 */
.ascii "OgreBattle64 " /* Internal name */
.word 0x00000000 /* Unknown 3 */
.word 0x0000004E /* Cartridge */
.ascii "OB" /* Cartridge ID */
.ascii "E" /* Country code */
.byte 0x00 /* Version */

BIN
assets/3F1B0.bin Normal file

Binary file not shown.

BIN
assets/boot.bin Normal file

Binary file not shown.

113
ogrebattle64.ld Normal file
View File

@ -0,0 +1,113 @@
SECTIONS
{
__romPos = 0;
_gp = 0x0;
header_ROM_START = __romPos;
header_VRAM = ADDR(.header);
.header : AT(header_ROM_START) SUBALIGN(16)
{
header_DATA_START = .;
header_s = .;
build/asm/header.s.o(.data);
header_DATA_END = .;
header_DATA_SIZE = ABSOLUTE(header_DATA_END - header_DATA_START);
}
__romPos += SIZEOF(.header);
header_ROM_END = __romPos;
header_VRAM_END = .;
boot_ROM_START = __romPos;
boot_VRAM = ADDR(.boot);
.boot : AT(boot_ROM_START) SUBALIGN(16)
{
boot_DATA_START = .;
boot_bin = .;
build/assets/boot.bin.o(.data);
boot_DATA_END = .;
boot_DATA_SIZE = ABSOLUTE(boot_DATA_END - boot_DATA_START);
}
__romPos += SIZEOF(.boot);
boot_ROM_END = __romPos;
boot_VRAM_END = .;
entry_ROM_START = __romPos;
entry_VRAM = ADDR(.entry);
.entry 0x80070C00 : AT(entry_ROM_START) SUBALIGN(16)
{
entry_TEXT_START = .;
build/asm/1000.s.o(.text);
entry_TEXT_END = .;
entry_TEXT_SIZE = ABSOLUTE(entry_TEXT_END - entry_TEXT_START);
entry_DATA_START = .;
_1000_s = .;
build/asm/1000.s.o(.data);
entry_DATA_END = .;
entry_DATA_SIZE = ABSOLUTE(entry_DATA_END - entry_DATA_START);
entry_RODATA_START = .;
build/asm/1000.s.o(.rodata);
entry_RODATA_END = .;
entry_RODATA_SIZE = ABSOLUTE(entry_RODATA_END - entry_RODATA_START);
}
entry_bss_VRAM = ADDR(.entry_bss);
.entry_bss (NOLOAD) : SUBALIGN(16)
{
entry_BSS_START = .;
build/asm/1000.s.o(.bss);
entry_BSS_END = .;
entry_BSS_SIZE = ABSOLUTE(entry_BSS_END - entry_BSS_START);
}
__romPos += SIZEOF(.entry);
__romPos = ALIGN(__romPos, 16);
entry_ROM_END = __romPos;
entry_VRAM_END = .;
main_ROM_START = __romPos;
main_VRAM = ADDR(.main);
.main entry_VRAM_END : AT(main_ROM_START) SUBALIGN(16)
{
main_TEXT_START = .;
build/asm/1060.s.o(.text);
main_TEXT_END = .;
main_TEXT_SIZE = ABSOLUTE(main_TEXT_END - main_TEXT_START);
main_DATA_START = .;
_2E570_data__s = .;
build/asm/data/2E570.data.s.o(.data);
main_DATA_END = .;
main_DATA_SIZE = ABSOLUTE(main_DATA_END - main_DATA_START);
main_RODATA_START = .;
build/asm/1060.s.o(.rodata);
main_RODATA_END = .;
main_RODATA_SIZE = ABSOLUTE(main_RODATA_END - main_RODATA_START);
}
main_bss_VRAM = ADDR(.main_bss);
.main_bss (NOLOAD) : SUBALIGN(16)
{
main_BSS_START = .;
build/asm/data/3F1B0.bss.s.o(.bss);
main_BSS_END = .;
main_BSS_SIZE = ABSOLUTE(main_BSS_END - main_BSS_START);
}
__romPos += SIZEOF(.main);
__romPos = ALIGN(__romPos, 16);
main_ROM_END = __romPos;
main_VRAM_END = .;
_3F1B0_ROM_START = __romPos;
_3F1B0_VRAM = ADDR(._3F1B0);
._3F1B0 main_VRAM_END : AT(_3F1B0_ROM_START) SUBALIGN(16)
{
_3F1B0_DATA_START = .;
_3F1B0_bin = .;
build/assets/3F1B0.bin.o(.data);
_3F1B0_DATA_END = .;
_3F1B0_DATA_SIZE = ABSOLUTE(_3F1B0_DATA_END - _3F1B0_DATA_START);
}
__romPos += SIZEOF(._3F1B0);
_3F1B0_ROM_END = __romPos;
_3F1B0_VRAM_END = .;
/DISCARD/ :
{
*(*);
}
}

55
ogrebattle64.yaml Normal file
View File

@ -0,0 +1,55 @@
name: Ogrebattle64 (North America)
sha1: 9cd0cfb50b883edb068e0c30d213193b9cf89895
options:
basename: ogrebattle64
target_path: baserom.z64
base_path: .
compiler: GCC
find_file_boundaries: True
header_encoding: ASCII
platform: n64
# undefined_funcs_auto: True
# undefined_funcs_auto_path: undefined_funcs_auto.txt
# undefined_syms_auto: True
# undefined_syms_auto_path: undefined_syms_auto.txt
# symbol_addrs_path: symbol_addrs.txt
# asm_path: asm
# src_path: src
# build_path: build
# extensions_path: tools/splat_ext
# mips_abi_float_regs: o32
# section_order: [".text", ".data", ".rodata", ".bss"]
# auto_all_sections: [".data", ".rodata", ".bss"]
# libultra_symbols: True
# hardware_regs: True
segments:
- name: header
type: header
start: 0x0
- name: boot
type: bin
start: 0x40
- name: entry
type: code
start: 0x1000
vram: 0x80070C00
subsegments:
- [0x1000, hasm]
- name: main
type: code
start: 0x1060
vram: 0x80070C60
follows_vram: entry
bss_size: 0x3AE70
subsegments:
- [0x1060, asm]
- [0x2E570, data]
- { start: 0x3F1B0, type: bss, vram: 0x800AEDB0 }
- type: bin
start: 0x3F1B0
follows_vram: main
- [0x2800000]

45
undefined_funcs_auto.txt Normal file
View File

@ -0,0 +1,45 @@
func_80085BD0 = 0x80085BD0;
func_80093380 = 0x80093380;
func_800992EC = 0x800992EC;
func_800993DC = 0x800993DC;
func_800994E4 = 0x800994E4;
func_8009952C = 0x8009952C;
func_8009953C = 0x8009953C;
func_800996D0 = 0x800996D0;
func_8009D7B4 = 0x8009D7B4;
func_8009D880 = 0x8009D880;
func_8009D9F0 = 0x8009D9F0;
func_8009DA10 = 0x8009DA10;
func_800E9C20 = 0x800E9C20;
func_800E9CEC = 0x800E9CEC;
func_800E9E34 = 0x800E9E34;
func_800EA714 = 0x800EA714;
func_800EA8E0 = 0x800EA8E0;
func_800EAC24 = 0x800EAC24;
func_800EAF1C = 0x800EAF1C;
func_8016C900 = 0x8016C900;
func_8016CB44 = 0x8016CB44;
func_8016CD30 = 0x8016CD30;
func_8016CD3C = 0x8016CD3C;
func_8016CD50 = 0x8016CD50;
func_8016CD90 = 0x8016CD90;
func_8016CDCC = 0x8016CDCC;
func_8016CDF4 = 0x8016CDF4;
func_80173610 = 0x80173610;
func_80173B60 = 0x80173B60;
func_80173BA0 = 0x80173BA0;
func_80173D14 = 0x80173D14;
func_80173D4C = 0x80173D4C;
func_80173D84 = 0x80173D84;
func_80173DBC = 0x80173DBC;
func_80179060 = 0x80179060;
func_8017BDC0 = 0x8017BDC0;
func_8017C29C = 0x8017C29C;
func_8017F490 = 0x8017F490;
func_80180BDC = 0x80180BDC;
func_801841F4 = 0x801841F4;
func_80184D70 = 0x80184D70;
func_801AB720 = 0x801AB720;
func_801AB74C = 0x801AB74C;
func_84001120 = 0x84001120;
func_8400114C = 0x8400114C;

96
undefined_syms_auto.txt Normal file
View File

@ -0,0 +1,96 @@
D_3AE70 = 0x3AE70;
D_3F1B0 = 0x3F1B0;
D_40E80 = 0x40E80;
D_66E10 = 0x66E10;
D_A9EF0 = 0xA9EF0;
D_AEDF0 = 0xAEDF0;
D_AEE30 = 0xAEE30;
D_594280 = 0x594280;
D_594284 = 0x594284;
D_80000000 = 0x80000000;
D_80000004 = 0x80000004;
D_80000008 = 0x80000008;
D_8000000C = 0x8000000C;
D_80000300 = 0x80000300;
D_80000308 = 0x80000308;
D_8000030C = 0x8000030C;
D_8000031C = 0x8000031C;
D_8007F880 = 0x8007F880;
D_80098D70 = 0x80098D70;
D_800996B8 = 0x800996B8;
D_800A81FE = 0x800A81FE;
D_800A81FF = 0x800A81FF;
D_800A8211 = 0x800A8211;
D_800A8212 = 0x800A8212;
D_800A8213 = 0x800A8213;
D_800A8215 = 0x800A8215;
D_800A9891 = 0x800A9891;
D_800AA051 = 0x800AA051;
D_800ABB72 = 0x800ABB72;
D_800ABBA2 = 0x800ABBA2;
D_800AEDB0 = 0x800AEDB0;
D_800C6D60 = 0x800C6D60;
D_800EB0B0 = 0x800EB0B0;
D_800EB0DC = 0x800EB0DC;
D_800EB12C = 0x800EB12C;
D_800EB17C = 0x800EB17C;
D_800EB1CC = 0x800EB1CC;
D_800EB21C = 0x800EB21C;
D_800EB26C = 0x800EB26C;
D_800EB2BC = 0x800EB2BC;
D_800EB8F0 = 0x800EB8F0;
D_80164760 = 0x80164760;
D_8016AF80 = 0x8016AF80;
D_801736E0 = 0x801736E0;
D_80173830 = 0x80173830;
D_80173920 = 0x80173920;
D_801776C0 = 0x801776C0;
D_801776F4 = 0x801776F4;
D_80177728 = 0x80177728;
D_801779F8 = 0x801779F8;
D_80177B78 = 0x80177B78;
D_80177D74 = 0x80177D74;
D_80177E4C = 0x80177E4C;
D_80177ED8 = 0x80177ED8;
D_80177F54 = 0x80177F54;
D_80178054 = 0x80178054;
D_80178060 = 0x80178060;
D_80178104 = 0x80178104;
D_801782B8 = 0x801782B8;
D_80178460 = 0x80178460;
D_8017846C = 0x8017846C;
D_801784BC = 0x801784BC;
D_8017B5B0 = 0x8017B5B0;
D_8017B5BC = 0x8017B5BC;
D_8017B5E0 = 0x8017B5E0;
D_8017BA34 = 0x8017BA34;
D_801862D0 = 0x801862D0;
D_80186310 = 0x80186310;
D_80186358 = 0x80186358;
D_80186610 = 0x80186610;
D_801869C8 = 0x801869C8;
D_80186E70 = 0x80186E70;
D_8018F481 = 0x8018F481;
D_8018F5A3 = 0x8018F5A3;
D_8018FDC0 = 0x8018FDC0;
D_80190F10 = 0x80190F10;
D_80196A28 = 0x80196A28;
D_80197168 = 0x80197168;
D_80197B70 = 0x80197B70;
D_80243DB0 = 0x80243DB0;
D_A0000000 = 0xA0000000;
D_A4040000 = 0xA4040000;
D_A4040010 = 0xA4040010;
D_A4080000 = 0xA4080000;
D_A4100000 = 0xA4100000;
D_A4300000 = 0xA4300000;
D_A4300008 = 0xA4300008;
D_A430000C = 0xA430000C;
D_A4400000 = 0xA4400000;
D_A4400010 = 0xA4400010;
D_A4500000 = 0xA4500000;
D_A450000C = 0xA450000C;
D_A4600000 = 0xA4600000;
D_A4600010 = 0xA4600010;
D_A4800000 = 0xA4800000;
D_A4800018 = 0xA4800018;