Cleaning up the repo
This commit is contained in:
parent
a45e28667c
commit
1928aa31f3
|
|
@ -3,4 +3,6 @@ baserom.z64
|
|||
asm
|
||||
assets
|
||||
|
||||
.vscode
|
||||
.vscode
|
||||
|
||||
tools/build
|
||||
|
|
|
|||
|
|
@ -0,0 +1,177 @@
|
|||
### Build Options ###
|
||||
|
||||
BASEROM := baserom.z64
|
||||
TARGET := ogrebattle64
|
||||
COMPARE ?= 1
|
||||
NON_MATCHING ?= 0
|
||||
CHECK ?= 1
|
||||
VERBOSE ?= 1
|
||||
PRETTY_PRINTING ?= 1
|
||||
|
||||
# Fail early if baserom does not exist
|
||||
ifeq ($(wildcard $(BASEROM)),)
|
||||
$(error Baserom `$(BASEROM)' not found.)
|
||||
endif
|
||||
|
||||
# NON_MATCHING=1 implies COMPARE=0
|
||||
ifeq ($(NON_MATCHING),1)
|
||||
override COMPARE=0
|
||||
endif
|
||||
|
||||
ifeq ($(VERBOSE),0)
|
||||
V := @
|
||||
endif
|
||||
|
||||
ifeq ($(PRETTY_PRINTING),0)
|
||||
P := true ||
|
||||
endif
|
||||
|
||||
### Output ###
|
||||
BUILD_DIR := build
|
||||
TOOLS_DIR := tools
|
||||
|
||||
BUILD_TOOLS_DIR := $(TOOLS_DIR)/build
|
||||
|
||||
ROM := $(BUILD_DIR)/$(TARGET).z64
|
||||
ELF := $(BUILD_DIR)/$(TARGET).elf
|
||||
LD_SCRIPT := $(TARGET).ld
|
||||
LD_MAP := $(BUILD_DIR)/$(TARGET).map
|
||||
|
||||
PYTHON := python3
|
||||
SPLAT_YAML := splat.yaml
|
||||
SPLAT := $(PYTHON) $(TOOLS_DIR)/splat/split.py $(SPLAT_YAML)
|
||||
DIFF := diff
|
||||
|
||||
CROSS := mips-linux-gnu-
|
||||
|
||||
LD := $(CROSS)ld
|
||||
OBJDUMP := $(CROSS)objdump
|
||||
AS := $(CROSS)as
|
||||
|
||||
OBJCOPY := $(CROSS)objcopy
|
||||
STRIP := $(CROSS)strip
|
||||
|
||||
CC := $(BUILD_TOOLS_DIR)/gcc2.7.2/gcc -B $(BUILD_TOOLS_DIR)/gcc2.7.2/
|
||||
CXX := $(BUILD_TOOLS_DIR)/gcc2.7.2/g++ -P
|
||||
|
||||
PRINT := printf '
|
||||
ENDCOLOR := \033[0m
|
||||
WHITE := \033[0m
|
||||
ENDWHITE := $(ENDCOLOR)
|
||||
GREEN := \033[0;32m
|
||||
ENDGREEN := $(ENDCOLOR)
|
||||
BLUE := \033[0;34m
|
||||
ENDBLUE := $(ENDCOLOR)
|
||||
YELLOW := \033[0;33m
|
||||
ENDYELLOW := $(ENDCOLOR)
|
||||
ENDLINE := \n'
|
||||
|
||||
### Compiler Options ###
|
||||
|
||||
IINC := -I include -I $(BUILD_DIR)/include -I src -I asm -I lib/libreultra/include/2.0I/
|
||||
|
||||
ASFLAGS := -Iinclude -EB -mtune=vr4300 -march=vr4300
|
||||
CPPFLAGS := $(IINC) -D_LANGUAGE_C -D_FINALROM -DF3DEX_GBI_2 -D_MIPS_SZLONG=32 -nostdinc -mgp32 -mfp32 -mips2
|
||||
CFLAGS := -c -G0 -mgp32 -mfp32 -mips2
|
||||
LDFLAGS := -T undefined_syms.txt -T undefined_syms_auto.txt -T undefined_funcs_auto.txt -T undefined_funcs.txt -T $(LD_SCRIPT) -Map $(LD_MAP) --no-check-sections
|
||||
|
||||
OPTFLAGS := -O2
|
||||
|
||||
### Sources ###
|
||||
|
||||
# Empty file used to track the time that splat was most recently run
|
||||
SPLAT_TIMESTAMP := asm/splat_timestamp
|
||||
|
||||
# Object files
|
||||
OBJECTS := $(shell $(PYTHON) tools/splat_objects.py $(SPLAT_YAML))
|
||||
DEPENDS := $(OBJECTS:=.d)
|
||||
|
||||
### Targets ###
|
||||
|
||||
all: $(ROM)
|
||||
|
||||
-include $(DEPENDS)
|
||||
|
||||
clean:
|
||||
$(V)rm -rf build
|
||||
$(info $(MAKEFLAGS))
|
||||
|
||||
distclean: clean
|
||||
$(V)rm -rf asm
|
||||
$(V)rm -rf assets
|
||||
$(V)rm -f *auto.txt
|
||||
$(V)rm -f $(TARGET).ld
|
||||
$(V)rm -f include/ld_addrs.h
|
||||
|
||||
setup: clean distclean split
|
||||
|
||||
split:
|
||||
$(V)$(SPLAT)
|
||||
@touch $(SPLAT_TIMESTAMP)
|
||||
|
||||
# Run splat and update the timestamp
|
||||
$(SPLAT_TIMESTAMP) : $(SPLAT_YAML) | $(BUILD_DIR)
|
||||
@$(P)$(PRINT)$(GREEN)Running splat$(ENDGREEN)$(ENDLINE)
|
||||
$(V)$(SPLAT)
|
||||
@touch $@
|
||||
|
||||
# Disassemble asm files with splat (just update the timestamp so it's newer than the time splat was run)
|
||||
asm/%.s: $(SPLAT_TIMESTAMP)
|
||||
@touch $@
|
||||
|
||||
# Extract bin files with splat (same as above)
|
||||
assets/%.bin: $(SPLAT_TIMESTAMP)
|
||||
@touch $@
|
||||
|
||||
# Create the build directory
|
||||
$(BUILD_DIR):
|
||||
@$(P)$(PRINT)$(GREEN)Making build folder$(ENDGREEN)$(ENDLINE)
|
||||
@mkdir -p $@
|
||||
|
||||
# Compile .c files
|
||||
$(BUILD_DIR)/src/%.c.o: src/%.c $(SPLAT_TIMESTAMP) | $(BUILD_DIR)
|
||||
@$(P)$(PRINT)$(GREEN)Compiling C file: $(ENDGREEN)$(BLUE)$<$(ENDBLUE)$(ENDLINE)
|
||||
@mkdir -p $(shell dirname $@)
|
||||
$(V)$(CC) $(CFLAGS) $(OPTFLAGS) $(CPPFLAGS) -o $@ $<
|
||||
# && mips-linux-gnu-objcopy -N $< $@
|
||||
|
||||
# Assemble .s files with modern gnu as
|
||||
$(BUILD_DIR)/asm/%.s.o: asm/%.s | $(BUILD_DIR)
|
||||
@$(P)$(PRINT)$(GREEN)Assembling asm file: $(ENDGREEN)$(BLUE)$<$(ENDBLUE)$(ENDLINE)
|
||||
@mkdir -p $(shell dirname $@)
|
||||
$(V)$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
# Create .o files from .bin files.
|
||||
$(BUILD_DIR)/%.bin.o: %.bin | $(BUILD_DIR)
|
||||
@$(P)$(PRINT)$(GREEN)Objcopying binary file: $(ENDGREEN)$(BLUE)$<$(ENDBLUE)$(ENDLINE)
|
||||
@mkdir -p $(shell dirname $@)
|
||||
$(V)$(LD) -r -b binary -o $@ $<
|
||||
|
||||
# Link the .o files into the .elf
|
||||
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS)
|
||||
@$(P)$(PRINT)$(GREEN)Linking elf file: $(ENDGREEN)$(BLUE)$@$(ENDBLUE)$(ENDLINE)
|
||||
$(V)$(LD) $(LDFLAGS) -o $@
|
||||
|
||||
# Convert the .elf to the final rom
|
||||
$(ROM): $(BUILD_DIR)/$(TARGET).elf
|
||||
@$(P)$(PRINT)$(GREEN)Creating z64: $(ENDGREEN)$(BLUE)$@$(ENDBLUE)$(ENDLINE)
|
||||
$(V)$(OBJCOPY) $< $@ -O binary
|
||||
$(V)$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x1000000 $< $@
|
||||
ifeq ($(COMPARE),1)
|
||||
@$(DIFF) $(BASEROM) $(ROM) && $(PRINT)OK$(ENDLINE) || ($(PRINT)FAILED (ROM BUILT, BUT DIFFERS FROM BASEROM)$(ENDLINE) && false)
|
||||
endif
|
||||
|
||||
### File-Specific Rules ###
|
||||
# build/src/os/O1/%.o: OPTFLAGS := -O1
|
||||
# build/src/%.o: CC := python3 tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
### Make Settings ###
|
||||
|
||||
# Prevent removing intermediate files
|
||||
.SECONDARY:
|
||||
|
||||
# Specify which targets don't have a corresponding file
|
||||
.PHONY: all clean distclean test setup split
|
||||
|
||||
# Print target for debugging
|
||||
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
|
||||
39
asm/1000.s
39
asm/1000.s
|
|
@ -1,39 +0,0 @@
|
|||
.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
51962
asm/1060.s
File diff suppressed because it is too large
Load Diff
18838
asm/data/2E570.data.s
18838
asm/data/2E570.data.s
File diff suppressed because it is too large
Load Diff
1442
asm/data/3F1B0.bss.s
1442
asm/data/3F1B0.bss.s
File diff suppressed because it is too large
Load Diff
16
asm/header.s
16
asm/header.s
|
|
@ -1,16 +0,0 @@
|
|||
.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
BIN
assets/3F1B0.bin
Binary file not shown.
BIN
assets/boot.bin
BIN
assets/boot.bin
Binary file not shown.
|
|
@ -0,0 +1,32 @@
|
|||
#ifndef __INCLUDE_ASM_H__
|
||||
#define __INCLUDE_ASM_H__
|
||||
|
||||
#define STRINGIFY_(x) #x
|
||||
#define STRINGIFY(x) STRINGIFY_(x)
|
||||
|
||||
#if !defined(SPLAT) && !defined(__CTX__) && !defined(PERMUTER)
|
||||
#ifndef INCLUDE_ASM
|
||||
#define INCLUDE_ASM_INTERNAL(TYPE, BASE_FOLDER, FOLDER, NAME, ARGS...) \
|
||||
__asm__( \
|
||||
".section .text\n" \
|
||||
"\t.set noat\n" \
|
||||
"\t.set noreorder\n" \
|
||||
"\t.align\t2\n" \
|
||||
"\t.globl\t"#NAME"\n" \
|
||||
"\t.ent\t"#NAME"\n" \
|
||||
#NAME ":\n" \
|
||||
"\t.include \"asm/"BASE_FOLDER"/"FOLDER"/"#NAME".s\"\n" \
|
||||
"\t.set reorder\n" \
|
||||
"\t.set at\n" \
|
||||
"\t.end\t"#NAME \
|
||||
);
|
||||
#define INCLUDE_ASM(TYPE, FOLDER, NAME, ARGS...) INCLUDE_ASM_INTERNAL(TYPE, "nonmatchings", FOLDER, NAME, ARGS)
|
||||
#define INCLUDE_ASM_SHIFT(TYPE, FOLDER, NAME, ARGS...) INCLUDE_ASM_INTERNAL(TYPE, "shiftable", FOLDER, NAME, ARGS)
|
||||
#endif
|
||||
__asm__(".include \"include/macro.inc\"\n");
|
||||
#else
|
||||
#define INCLUDE_ASM(TYPE, FOLDER, NAME, ARGS...)
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
.macro glabel label
|
||||
.global \label
|
||||
.type \label, @function
|
||||
\label:
|
||||
.endm
|
||||
|
||||
.macro dlabel label
|
||||
.global \label
|
||||
\label:
|
||||
.endm
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
curl -L "https://github.com/decompals/mips-gcc-2.7.2/releases/download/main/gcc-2.7.2-linux.tar.gz" | tar zx -C tools/build/gcc2.7.2
|
||||
curl -L "https://github.com/decompals/mips-binutils-2.6/releases/download/v0.2/binutils-2.6-linux.tar.gz" | tar zx -C tools/build/gcc2.7.2
|
||||
113
ogrebattle64.ld
113
ogrebattle64.ld
|
|
@ -1,113 +0,0 @@
|
|||
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/ :
|
||||
{
|
||||
*(*);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
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]
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
#!/usr/bin/env python3
|
||||
# Script to get a list of object files that will be in the linker script for a given splat file
|
||||
import argparse
|
||||
import sys
|
||||
sys.path.append("./tools/splat")
|
||||
|
||||
from split import *
|
||||
|
||||
def main(config_path):
|
||||
# Load config
|
||||
with open(config_path) as f:
|
||||
config = yaml.load(f.read(), Loader=yaml.SafeLoader)
|
||||
|
||||
options.initialize(config, config_path, None, None)
|
||||
|
||||
all_segments = initialize_segments(config["segments"])
|
||||
|
||||
objs = ""
|
||||
|
||||
for segment in all_segments:
|
||||
linker_entries = segment.get_linker_entries()
|
||||
for entry in linker_entries:
|
||||
objs += str(entry.object_path) + " "
|
||||
|
||||
return objs
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='Get objects for splat file',
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||
parser.add_argument('yamls', nargs='+', help="Splat files")
|
||||
args = parser.parse_args()
|
||||
|
||||
obj_lists = map(main, args.yamls)
|
||||
map(print, obj_lists)
|
||||
for obj_list in obj_lists:
|
||||
print(obj_list)
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
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;
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
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;
|
||||
Loading…
Reference in New Issue