Crystal Caves (#44)

This commit is contained in:
Allison Mackenzie 2023-10-12 08:30:43 -05:00 committed by GitHub
parent 76c552f950
commit 05433f30b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 248 additions and 3 deletions

View File

@ -6,6 +6,7 @@ MAIN := main
GAME := game
OVL_AC := ac
OVL_AG := ag
OVL_CC := cc
OVL_CH := ch
OVL_CR := cr
OVL_CREDITS := credits
@ -113,7 +114,7 @@ $(BUILD_DIR)/$(GAME).elf: $(call list_o_files,game)
$(foreach dir,$(ASM_DIR)/$* $(ASM_DIR)/$*/data $(SRC_DIR)/$* $(ASSETS_DIR)/$*,$(shell mkdir -p $(BUILD_DIR)/$(dir)))
### Overlays ###
overlays: ac ag ch cr credits dc gg gy1 gy2 landmap pg sf sv zl
overlays: ac ag cc ch cr credits dc gg gy1 gy2 landmap pg sf sv zl
ac: ovlac_dirs $(BUILD_DIR)/AC.BIN
$(BUILD_DIR)/AC.BIN: $(BUILD_DIR)/ovlac.elf
@ -123,6 +124,10 @@ ag: ovlag_dirs $(BUILD_DIR)/AG.BIN
$(BUILD_DIR)/AG.BIN: $(BUILD_DIR)/ovlag.elf
$(OBJCOPY) -O binary $< $@
cc: ovlcc_dirs $(BUILD_DIR)/CC.BIN
$(BUILD_DIR)/CC.BIN: $(BUILD_DIR)/ovlcc.elf
$(OBJCOPY) -O binary $< $@
ch: ovlch_dirs $(BUILD_DIR)/CH.BIN
$(BUILD_DIR)/CH.BIN: $(BUILD_DIR)/ovlch.elf
$(OBJCOPY) -O binary $< $@
@ -198,7 +203,7 @@ expected: check
# Assembly extraction
extract: extract_main extract_game extract_ovlac extract_ovlag extract_ovlch extract_ovlcr extract_ovlcredits extract_ovldc extract_ovlgg extract_ovlgy1 extract_ovlgy2 extract_ovllandmap extract_ovlpg extract_ovlsf extract_ovlsv extract_ovlzl
extract: extract_main extract_game extract_ovlac extract_ovlag extract_ovlcc extract_ovlch extract_ovlcr extract_ovlcredits extract_ovldc extract_ovlgg extract_ovlgy1 extract_ovlgy2 extract_ovllandmap extract_ovlpg extract_ovlsf extract_ovlsv extract_ovlzl
## Main
extract_main:
@ -234,6 +239,6 @@ checkformat:
# Phony
.PHONY: init, all, clean, format, checkformat, check, expected
.PHONY: list_src_files, list_o_files, link
.PHONY: main game ac ag ch cr credits dc gg gy1 gy2 landmap pg sf sv zl
.PHONY: main game ac ag cc ch cr credits dc gg gy1 gy2 landmap pg sf sv zl
.PHONY: %_dirs
.PHONY: extract, extract_%

View File

@ -2,6 +2,7 @@
265ce5dc508002a339ae535e49a5b1b4e683b732 build/MEDIEVIL.EXE
fd900ccbc8940620563e60cb47c7124908fbbce0 build/AC.BIN
06bf5b6b52e1d4242b406d1fe4684b331c0d5354 build/AG.BIN
554cee5a0a2b2160de8818513aecc5f67db219f5 build/CC.BIN
87fd421e4990c34075e901b4d658ca51f24ff2c7 build/CH.BIN
b52e73eea027f2a517be47b6f2133e3a6ac73a15 build/CR.BIN
4ac994ab3ff91dab30cb199e73320c6751965c53 build/CREDITS.BIN

40
config/splat.ovlcc.yaml Normal file
View File

@ -0,0 +1,40 @@
name: CC.BIN
sha1: 554cee5a0a2b2160de8818513aecc5f67db219f5
options:
platform: psx
basename: ovlcc
base_path: ..
build_path: build/
target_path: disk/OVERLAYS/CC.BIN
asm_path: asm/ovl/cc
asset_path: assets/ovl/cc
src_path: src/ovl/cc
compiler: GCC
symbol_addrs_path: config/symbols.ovlcc.txt
undefined_funcs_auto_path: config/undefined_funcs_auto.ovlcc.txt
undefined_syms_auto_path: config/undefined_syms_auto.ovlcc.txt
ld_script_path: config/ld/ovlcc.ld
find_file_boundaries: yes
use_legacy_include_asm: no
migrate_rodata_to_functions: yes
asm_jtbl_label_macro: jlabel
section_order:
- ".rodata"
- ".text"
- ".data"
subalign: 2
rodata_string_guesser_level: 2
data_string_guesser_level: 2
segments:
- name: ovlcc
type: code
start: 0x00000000
vram: 0x80010000
subsegments:
- [0x0, rodata]
- [0x160, c]
- [0x7198, data]
- [0xA0A0]

0
config/symbols.ovlcc.txt Normal file
View File

199
src/ovl/cc/160.c Normal file
View File

@ -0,0 +1,199 @@
#include "common.h"
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80010160);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_8001028C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800103E4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80010450);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80010598);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800105E4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80010630);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_8001067C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800106C8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80010888);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80010AA8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80010C1C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80010D8C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80010ECC);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80010F80);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80011110);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80011160);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80011278);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800112F4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80011390);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800114A0);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_8001162C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80011688);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800116F4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80011820);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80011884);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800118B8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80011A40);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80011E2C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800121D4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80012264);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_8001229C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800123A8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800125EC);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800126F0);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800127F4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80012968);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800129AC);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80012A80);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80012AAC);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80012BD4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80012D08);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80012EE8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013070);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013150);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013190);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013330);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013428);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800134C8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013518);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800135EC);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013640);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013748);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_8001379C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013878);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_8001390C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800139A0);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013A68);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013BD4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013CDC);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013DCC);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80013EF4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800140A4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80014100);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80014424);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800145C8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80014690);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800146E4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80014A7C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80014BF4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80014C38);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80014CAC);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80014EE8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80015334);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_8001547C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800156EC);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80015A64);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80015BA8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80015D54);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80015E5C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80015EC0);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80015F7C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80015FC8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_8001604C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80016114);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80016258);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800163A8);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80016488);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80016528);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800166F4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800167C4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_800168B4);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80016914);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80016B34);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80016D2C);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80016E04);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80016E68);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80016F94);
INCLUDE_ASM("asm/ovl/cc/nonmatchings/160", func_80017048);