mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-23 04:59:41 +00:00
Upload disassembly
This commit is contained in:
commit
fcf1f0773a
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
main.exe
|
||||
DRA.BIN
|
||||
|
||||
*.ld
|
||||
*auto.*.txt
|
||||
__pycache__
|
||||
|
||||
asm/*/*.s
|
||||
asm/*/data/*.s
|
||||
asm/*/nonmatchings/*.s
|
||||
asm/*/nonmatchings/*/*.s
|
||||
asm/*/nonmatchings/*/*/*.s
|
||||
assets/
|
||||
build/
|
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
[submodule "tools/n64splat"]
|
||||
path = tools/n64splat
|
||||
url = git@github.com:ethteck/n64splat.git
|
||||
[submodule "tools/asm-differ"]
|
||||
path = tools/asm-differ
|
||||
url = git@github.com:simonlindholm/asm-differ.git
|
114
Makefile
Normal file
114
Makefile
Normal file
@ -0,0 +1,114 @@
|
||||
# Binaries
|
||||
MAIN := main
|
||||
DRA := dra
|
||||
|
||||
# Compilers
|
||||
GCC_MODERN := $(CROSS)gcc
|
||||
GCC_272 := ./bin/cc1
|
||||
CROSS := mipsel-linux-gnu-
|
||||
AS := $(CROSS)as
|
||||
CC := $(GCC_272)
|
||||
LD := $(CROSS)ld
|
||||
CPP := cpp
|
||||
OBJCOPY := $(CROSS)objcopy
|
||||
AS_FLAGS += -Iinclude -march=r3000 -mtune=r3000 -no-pad-sections
|
||||
CC_FLAGS += -mips1 -mcpu=3000 -quiet -G0 -Wall -fno-builtin -mno-abicalls -fsigned-char -O2
|
||||
CPP_FLAGS := -Iinclude -undef -Wall -lang-c -fno-builtin -gstabs
|
||||
CPP_FLAGS += -Dmips -D__GNUC__=2 -D__OPTIMIZE__ -D__mips__ -D__mips -Dpsx -D__psx__ -D__psx -D_PSYQ -D__EXTENSIONS__ -D_MIPSEL -D_LANGUAGE_C -DLANGUAGE_C
|
||||
|
||||
# Directories
|
||||
ASM_DIR := asm
|
||||
SRC_DIR := src
|
||||
BUILD_DIR := build
|
||||
CONFIG_DIR := config
|
||||
TOOLS_DIR := tools
|
||||
|
||||
# Files
|
||||
MAIN_ASM_DIRS := $(ASM_DIR)/$(MAIN) $(ASM_DIR)/$(MAIN)/psxsdk $(ASM_DIR)/$(MAIN)/data
|
||||
MAIN_SRC_DIRS := $(SRC_DIR)/$(MAIN) $(SRC_DIR)/$(MAIN)/psxsdk
|
||||
MAIN_S_FILES := $(foreach dir,$(MAIN_ASM_DIRS),$(wildcard $(dir)/*.s)) \
|
||||
$(foreach dir,$(MAIN_ASM_DIRS),$(wildcard $(dir)/**/*.s))
|
||||
MAIN_C_FILES := $(foreach dir,$(MAIN_SRC_DIRS),$(wildcard $(dir)/*.c)) \
|
||||
$(foreach dir,$(MAIN_SRC_DIRS),$(wildcard $(dir)/**/*.c))
|
||||
MAIN_O_FILES := $(foreach file,$(MAIN_S_FILES),$(BUILD_DIR)/$(file).o) \
|
||||
$(foreach file,$(MAIN_C_FILES),$(BUILD_DIR)/$(file).o)
|
||||
MAIN_TARGET := $(BUILD_DIR)/$(MAIN)
|
||||
|
||||
DRA_ASM_DIRS := $(ASM_DIR)/$(DRA) $(ASM_DIR)/$(DRA)/data
|
||||
DRA_SRC_DIRS := $(SRC_DIR)/$(DRA)
|
||||
DRA_S_FILES := $(foreach dir,$(DRA_ASM_DIRS),$(wildcard $(dir)/*.s)) \
|
||||
$(foreach dir,$(DRA_ASM_DIRS),$(wildcard $(dir)/**/*.s))
|
||||
DRA_C_FILES := $(foreach dir,$(DRA_SRC_DIRS),$(wildcard $(dir)/*.c)) \
|
||||
$(foreach dir,$(DRA_SRC_DIRS),$(wildcard $(dir)/**/*.c))
|
||||
DRA_O_FILES := $(foreach file,$(DRA_S_FILES),$(BUILD_DIR)/$(file).o) \
|
||||
$(foreach file,$(DRA_C_FILES),$(BUILD_DIR)/$(file).o)
|
||||
DRA_TARGET := $(BUILD_DIR)/$(DRA)
|
||||
DRABIN_TARGET := $(BUILD_DIR)/DRA.BIN
|
||||
|
||||
# Tooling
|
||||
PYTHON := python3
|
||||
SPLAT_DIR := $(TOOLS_DIR)/n64splat
|
||||
SPLAT := $(PYTHON) $(SPLAT_DIR)/split.py
|
||||
|
||||
all: main dra
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
|
||||
main: main_dirs $(MAIN_TARGET).exe
|
||||
sha1sum --check $(MAIN).sha
|
||||
main_dirs:
|
||||
$(foreach dir,$(MAIN_ASM_DIRS) $(MAIN_SRC_DIRS),$(shell mkdir -p $(BUILD_DIR)/$(dir)))
|
||||
$(MAIN_TARGET).exe: $(MAIN_TARGET).elf
|
||||
$(OBJCOPY) --dump-section .header=$(MAIN_TARGET).header $<
|
||||
$(OBJCOPY) -O binary $< $(MAIN_TARGET).bin
|
||||
cat $(MAIN_TARGET).header $(MAIN_TARGET).bin > $@
|
||||
$(MAIN_TARGET).elf: $(MAIN_O_FILES)
|
||||
$(LD) -o $@ \
|
||||
-Map $(MAIN_TARGET).map \
|
||||
-T $(MAIN).ld \
|
||||
-T $(CONFIG_DIR)/undefined_syms_auto.$(MAIN).txt \
|
||||
--no-check-sections \
|
||||
-nostdlib \
|
||||
-s
|
||||
|
||||
dra: dra_dirs $(DRABIN_TARGET)
|
||||
sha1sum --check $(DRA).sha
|
||||
dra_dirs:
|
||||
$(foreach dir,$(DRA_ASM_DIRS) $(DRA_SRC_DIRS),$(shell mkdir -p $(BUILD_DIR)/$(dir)))
|
||||
$(DRABIN_TARGET): $(DRA_TARGET).elf
|
||||
$(OBJCOPY) -O binary $< $@
|
||||
$(DRA_TARGET).elf: $(DRA_O_FILES)
|
||||
$(LD) -o $@ \
|
||||
-Map $(DRA_TARGET).map \
|
||||
-T dra.ld \
|
||||
-T $(CONFIG_DIR)/undefined_syms_auto.$(DRA).txt \
|
||||
-T $(CONFIG_DIR)/undefined_funcs_auto.$(DRA).txt \
|
||||
--no-check-sections \
|
||||
-nostdlib \
|
||||
-s
|
||||
|
||||
extract: extract_main extract_dra
|
||||
extract_main: $(SPLAT_DIR)
|
||||
$(SPLAT) --basedir . $(CONFIG_DIR)/splat.$(MAIN).yaml
|
||||
extract_dra: $(SPLAT_DIR)
|
||||
$(SPLAT) --basedir . $(CONFIG_DIR)/splat.$(DRA).yaml
|
||||
|
||||
$(SPLAT_DIR):
|
||||
git submodule init $(SPLAT_DIR)
|
||||
git submodule update $(SPLAT_DIR)
|
||||
pip3 install -r $(SPLAT_DIR)/requirements.txt
|
||||
|
||||
$(BUILD_DIR)/%.s.o: %.s
|
||||
$(AS) $(AS_FLAGS) -o $@ $<
|
||||
$(BUILD_DIR)/%.bin.o: %.bin
|
||||
$(LD) -r -b binary -o $@ $<
|
||||
$(BUILD_DIR)/%.c.o: $(BUILD_DIR)/%.c.s
|
||||
$(AS) $(AS_FLAGS) -o $@ $<
|
||||
$(BUILD_DIR)/%.c.s: %.c
|
||||
$(CPP) $(CPP_FLAGS) $< | $(CC) $(CC_FLAGS) -o $@
|
||||
|
||||
SHELL = /bin/bash -e -o pipefail
|
||||
|
||||
.PHONY: all, clean
|
||||
.PHONY: main, main_dirs, dra, dra_dirs
|
||||
.PHONY: extract, extract_main, extract_dra
|
30
README.md
Normal file
30
README.md
Normal file
@ -0,0 +1,30 @@
|
||||
# Castlevania: Symphony of the Night disassembly
|
||||
|
||||
Recompilable code that creates 1:1 binaries for the commercial videogame Castlevania: Symphony of the Night. This repository aims to create a full disassembly in C.
|
||||
|
||||
## Game revision
|
||||
|
||||
| SHA-1 checksum | File name | Version
|
||||
|--------------------------------------------|-----------|---------
|
||||
| `54828d4e44ea9575f2a0917ff63def42a304abff` | main.exe | SLUS-00067
|
||||
| `2eac5f7162e77416166c2511c787995488f01c37` | DRA.BIN | SLUS-00067
|
||||
|
||||
## Build
|
||||
|
||||
1. You need `gcc-mipsel-linux-gnu` that you can easily install on any Debian-based Linux distribution. On Windows it is highly recommended to just use Ubuntu with WSL
|
||||
1. Place your `main.exe` from the file `SLUS_000.67` and `DRA.BIN` in the root directory
|
||||
1. Run `make extract` to generate the assembly files
|
||||
1. Run `make all` to compile the binaries into the `build/` directory
|
||||
|
||||
Please double-check if the [MD5 matches](#game-revision).
|
||||
|
||||
## To do
|
||||
|
||||
The project is very barebone at the moment and there is a massive room of improvement, mostly in the infrastructure:
|
||||
|
||||
* I am not sure which GCC version is the most suitable and the C compiled code might be different from the original assembly
|
||||
* There are no utilities to make a diff between the original executable and the current one
|
||||
* There is no CI/CD pipeline to track the decompilation progress
|
||||
* It is not known which PS1 SDK version has been used for the game
|
||||
* The game executable `DRA.BIN` is not yet disassembled
|
||||
* The zone overlays (`ST/{ZONE}/{ZONE}.BIN`) are not yet disassembled
|
18
asm/main/psxsdk/libapi1.s
Normal file
18
asm/main/psxsdk/libapi1.s
Normal file
@ -0,0 +1,18 @@
|
||||
.include "main.inc"
|
||||
|
||||
syscalldef InitHeap 0xA0 0x39
|
||||
syscalldef Load 0xA0 0x42
|
||||
syscalldef Exec 0xA0 0x43
|
||||
syscalldef GPU_cw 0xA0 0x49
|
||||
syscalldef _bu_init 0xA0 0x70
|
||||
syscalldef open 0xB0 0x32
|
||||
syscalldef lseek 0xB0 0x33
|
||||
syscalldef read 0xB0 0x34
|
||||
syscalldef write 0xB0 0x35
|
||||
syscalldef close 0xB0 0x36
|
||||
syscalldef format 0xB0 0x41
|
||||
syscalldef firstfile 0xB0 0x42
|
||||
syscalldef nextfile 0xB0 0x43
|
||||
syscalldef erase 0xB0 0x45
|
||||
syscalldef Krom2RawAdd 0xB0 0x51
|
||||
syscalldef ChangeClearPAD 0xB0 0x5B
|
3
asm/main/psxsdk/libapi2.s
Normal file
3
asm/main/psxsdk/libapi2.s
Normal file
@ -0,0 +1,3 @@
|
||||
.include "main.inc"
|
||||
|
||||
syscalldef DeliverEvent 0xB0 0x07
|
15
asm/main/psxsdk/libc.s
Normal file
15
asm/main/psxsdk/libc.s
Normal file
@ -0,0 +1,15 @@
|
||||
.include "main.inc"
|
||||
|
||||
syscalldef exit 0xb0 0x38
|
||||
syscalldef puts 0xb0 0x3f
|
||||
syscalldef setjmp 0xa0 0x13
|
||||
syscalldef strcat 0xa0 0x15
|
||||
syscalldef strcpy 0xa0 0x19
|
||||
syscalldef strlen 0xa0 0x1b
|
||||
syscalldef memcpy 0xa0 0x2a
|
||||
syscalldef memset 0xa0 0x2b
|
||||
syscalldef rand 0xa0 0x2f
|
||||
syscalldef srand 0xa0 0x30
|
||||
syscalldef malloc 0xa0 0x33
|
||||
syscalldef free 0xa0 0x34
|
||||
syscalldef printf 0xa0 0x3f
|
31
asm/main/psxsdk/libcard.s
Normal file
31
asm/main/psxsdk/libcard.s
Normal file
@ -0,0 +1,31 @@
|
||||
.include "main.inc"
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
syscalldef _card_info 0xA0 0xAB
|
||||
syscalldef _card_load 0xA0 0xAC
|
||||
syscalldef InitCARD 0xB0 0x4A
|
||||
syscalldef StartCARD 0xB0 0x4B
|
||||
|
||||
glabel _card_clear
|
||||
/* 724C 80016A4C E8FFBD27 */ addiu $sp, $sp, -0x18
|
||||
/* 7250 80016A50 1000B0AF */ sw $s0, 0x10($sp)
|
||||
/* 7254 80016A54 1400BFAF */ sw $ra, 0x14($sp)
|
||||
/* 7258 80016A58 A55A000C */ jal _new_card
|
||||
/* 725C 80016A5C 21808000 */ addu $s0, $a0, $zero
|
||||
/* 7260 80016A60 21200002 */ addu $a0, $s0, $zero
|
||||
/* 7264 80016A64 3F000534 */ ori $a1, $zero, 0x3f
|
||||
/* 7268 80016A68 A15A000C */ jal _card_write
|
||||
/* 726C 80016A6C 21300000 */ addu $a2, $zero, $zero
|
||||
/* 7270 80016A70 1400BF8F */ lw $ra, 0x14($sp)
|
||||
/* 7274 80016A74 1000B08F */ lw $s0, 0x10($sp)
|
||||
/* 7278 80016A78 1800BD27 */ addiu $sp, $sp, 0x18
|
||||
/* 727C 80016A7C 0800E003 */ jr $ra
|
||||
/* 7280 80016A80 00000000 */ nop
|
||||
|
||||
syscalldef _card_write 0xB0 0x4E
|
||||
syscalldef _new_card 0xB0 0x50
|
1
checksum.md5
Normal file
1
checksum.md5
Normal file
@ -0,0 +1 @@
|
||||
d70de80ac9b04a8ba4c62a7c646173fe *main.exe
|
27
config/splat.dra.yaml
Normal file
27
config/splat.dra.yaml
Normal file
@ -0,0 +1,27 @@
|
||||
options:
|
||||
platform: psx
|
||||
basename: dra
|
||||
base_path: .
|
||||
target_path: DRA.BIN
|
||||
asm_path: asm/dra
|
||||
asset_path: assets/dra
|
||||
src_path: src/dra
|
||||
compiler: GCC
|
||||
symbol_addrs_path: config/sym.dra.txt
|
||||
undefined_syms_path: config/undefined_syms.dra.txt
|
||||
undefined_funcs_auto_path: config/undefined_funcs_auto.dra.txt
|
||||
undefined_syms_auto_path: config/undefined_syms_auto.dra.txt
|
||||
find_file_boundaries: yes
|
||||
enable_ld_alignment_hack: yes
|
||||
use_legacy_include_asm: no
|
||||
segments:
|
||||
- name: dra
|
||||
type: code
|
||||
start: 0x00000000
|
||||
vram: 0x800A0000
|
||||
subalign: 4
|
||||
subsegments:
|
||||
- [0x0, data]
|
||||
- [0x42398, c]
|
||||
- [0x962AC, data]
|
||||
- [0x119870]
|
40
config/splat.main.yaml
Normal file
40
config/splat.main.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
options:
|
||||
platform: psx
|
||||
basename: main
|
||||
base_path: .
|
||||
target_path: main.exe
|
||||
asm_path: asm/main
|
||||
asset_path: assets/main
|
||||
src_path: src/main
|
||||
compiler: GCC
|
||||
symbol_addrs_path: config/sym.main.txt
|
||||
undefined_syms_path: config/undefined_syms.main.txt
|
||||
undefined_funcs_auto_path: config/undefined_funcs_auto.main.txt
|
||||
undefined_syms_auto_path: config/undefined_syms_auto.main.txt
|
||||
find_file_boundaries: yes
|
||||
enable_ld_alignment_hack: yes
|
||||
use_legacy_include_asm: no
|
||||
segments:
|
||||
- [0x800, header]
|
||||
- name: main
|
||||
type: code
|
||||
start: 0x00000800
|
||||
vram: 0x80010000
|
||||
subalign: 4
|
||||
subsegments:
|
||||
- [0x800, rodata]
|
||||
- [0x15F4, asm]
|
||||
- [0x5938, hasm, psxsdk/libapi1]
|
||||
- [0x5A38, asm]
|
||||
- [0x5E60, c, psxsdk/libetc]
|
||||
- [0x5E78, asm]
|
||||
- [0x6864, hasm, psxsdk/libc]
|
||||
- [0x6934, c, psxsdk/fprintf]
|
||||
- [0x7190, asm]
|
||||
- [0x720C, hasm, psxsdk/libcard]
|
||||
- [0x72A4, asm]
|
||||
- [0x9C14, hasm, psxsdk/libapi2]
|
||||
- [0x9C24, c, psxsdk/libapi]
|
||||
- [0x9C54, asm]
|
||||
- [0x1BCE0, data]
|
||||
- [0x89800]
|
561
config/sym.dra.txt
Normal file
561
config/sym.dra.txt
Normal file
@ -0,0 +1,561 @@
|
||||
aDraBin1 = 0x80010040;
|
||||
aFMapBin1 = 0x8001004C;
|
||||
a0123456789abcd = 0x8001005C;
|
||||
jpt_80011B20 = 0x80010074;
|
||||
aClip3d3dDD = 0x80010120;
|
||||
aOfs3d3d = 0x80010138;
|
||||
aTwDDDD = 0x80010148;
|
||||
aDtdD = 0x80010160;
|
||||
aDfeD = 0x8001016C;
|
||||
aDisp3d3dDD = 0x80010178;
|
||||
aScreen3d3dDD = 0x80010194;
|
||||
aIsinterD = 0x800101B0;
|
||||
aIsrgb24D = 0x800101BC;
|
||||
aIdSysCV1831995 = 0x800101C8;
|
||||
aSBadRect = 0x800102B0;
|
||||
str = 0x800102D4;
|
||||
aLoadimage = 0x800102E0;
|
||||
aStoreimage = 0x800102EC;
|
||||
aMoveimage = 0x800102F8;
|
||||
aVsyncTimeout = 0x800103C4;
|
||||
aIdIntrCV173199 = 0x800103D4;
|
||||
a0123456789abcd_0 = 0x8001046C;
|
||||
a0123456789abcd_1 = 0x80010480;
|
||||
jpt_800163F4 = 0x80010494;
|
||||
aNone = 0x80010560;
|
||||
aCdlreads = 0x80010568;
|
||||
aCdlseekp = 0x80010574;
|
||||
aCdlseekl = 0x80010580;
|
||||
aCdlgettd = 0x8001058C;
|
||||
aCdlgettn = 0x80010598;
|
||||
aCdlgetlocp = 0x800105A4;
|
||||
aCdlgetlocl = 0x800105B0;
|
||||
aCdldemute = 0x800105DC;
|
||||
aCdlmute = 0x800105E8;
|
||||
aCdlreset = 0x800105F0;
|
||||
aCdlpause = 0x800105FC;
|
||||
aCdlstop = 0x80010608;
|
||||
aCdlstandby = 0x80010610;
|
||||
aCdlreadn = 0x8001061C;
|
||||
aCdlbackword = 0x80010628;
|
||||
aCdlforward = 0x80010634;
|
||||
aCdlplay = 0x80010640;
|
||||
aCdlsetloc = 0x80010648;
|
||||
aCdlnop = 0x80010654;
|
||||
aCdlsync = 0x8001065C;
|
||||
aDiskerror_0 = 0x80010664;
|
||||
aDataend = 0x80010670;
|
||||
aAcknowledge = 0x80010678;
|
||||
aComplete = 0x80010684;
|
||||
aDataready = 0x80010690;
|
||||
aNointr = 0x8001069C;
|
||||
aCdTimeout = 0x800106A4;
|
||||
aDiskerror = 0x800106D0;
|
||||
aCdromUnknownIn = 0x800106F8;
|
||||
jpt_80019DE8 = 0x80010718;
|
||||
aCdSync = 0x8001072C;
|
||||
aCdReady = 0x80010734;
|
||||
aCdCw = 0x80010758;
|
||||
aIdBiosCV177199 = 0x80010760;
|
||||
aCdInit = 0x80010794;
|
||||
aCdDatasync = 0x800107AC;
|
||||
aSDirWasNotFoun = 0x800107D4;
|
||||
aCd001 = 0x80010870;
|
||||
aCdreadSectorEr = 0x800109A4;
|
||||
aCdreadShellOpe = 0x800109BC;
|
||||
aCdreadRetry = 0x800109D4;
|
||||
jpt_8001DE24 = 0x80010A60;
|
||||
jpt_8001EECC = 0x80010C48;
|
||||
jpt_8001EFB8 = 0x80010CA8;
|
||||
jpt_80020818 = 0x80010CD4;
|
||||
aWaitReset = 0x80010CFC;
|
||||
aWaitWrdyHL = 0x80010D0C;
|
||||
aWaitDmafClearW = 0x80010D20;
|
||||
aSpuTimeOutWait = 0x80010D34;
|
||||
jpt_8002A518 = 0x80010D74;
|
||||
jpt_8002A5E8 = 0x80010D94;
|
||||
jpt_8002ADFC = 0x80010DB4;
|
||||
jpt_8002AEC4 = 0x80010DD4;
|
||||
__main = 0x80010DF4;
|
||||
start = 0x80010DFC;
|
||||
stup1 = 0x80010E20;
|
||||
stup0 = 0x80010E9C;
|
||||
main = 0x80010EB8;
|
||||
SetDumpFnt = 0x8001134C;
|
||||
FntLoad = 0x8001138C;
|
||||
FntOpen = 0x8001142C;
|
||||
FntFlush = 0x800116E4;
|
||||
DumpClut = 0x80011EA0;
|
||||
AddPrim = 0x80011F18;
|
||||
setSemiTrans = 0x80011FCC;
|
||||
setShadeTex = 0x80011FF4;
|
||||
setPolyGT3 = 0x80012058;
|
||||
setPolyG4 = 0x80012094;
|
||||
setPolyGT4 = 0x800120A8;
|
||||
setSprt8 = 0x800120BC;
|
||||
setSprt16 = 0x800120D0;
|
||||
setSprt = 0x800120E4;
|
||||
setTile = 0x80012134;
|
||||
setLineG2 = 0x80012170;
|
||||
ResetGraph = 0x80012434;
|
||||
SetGraphReverse = 0x80012604;
|
||||
SetGraphQueue = 0x8001277C;
|
||||
GsGetWorkBase = 0x80012818;
|
||||
GsGetWorkBase_0 = 0x80012828;
|
||||
DrawSyncCallback = 0x80012838;
|
||||
SetDispMask = 0x80012894;
|
||||
DrawSync = 0x8001290C;
|
||||
debugLog = 0x80012978;
|
||||
ClearImage = 0x80012A90;
|
||||
LoadImage = 0x80012B24;
|
||||
StoreImage = 0x80012B88;
|
||||
MoveImage = 0x80012BEC;
|
||||
ClearOTag = 0x80012C90;
|
||||
ClearOTagR = 0x80012D3C;
|
||||
DrawOTag = 0x80012E1C;
|
||||
PutDrawEnv = 0x80012E8C;
|
||||
PutDispEnv = 0x80012FE4;
|
||||
InitHeap = 0x80015138;
|
||||
Load = 0x80015148;
|
||||
Exec = 0x80015158;
|
||||
GPU_cw = 0x80015168;
|
||||
_bu_init = 0x80015178;
|
||||
open = 0x80015188;
|
||||
lseek = 0x80015198;
|
||||
read = 0x800151A8;
|
||||
write = 0x800151B8;
|
||||
close = 0x800151C8;
|
||||
format = 0x800151D8;
|
||||
firstfile = 0x800151E8;
|
||||
nextfile = 0x800151F8;
|
||||
erase = 0x80015208;
|
||||
Krom2RawAdd = 0x80015218;
|
||||
ChangeClearPAD = 0x80015228;
|
||||
StopPAD = 0x800152D8;
|
||||
PAD_init2 = 0x800152E8;
|
||||
PAD_dr = 0x800152F8;
|
||||
VSync = 0x80015308;
|
||||
VSyncWait = 0x80015450;
|
||||
ChangeClearRCnt = 0x800154EC;
|
||||
ResetCallback = 0x800154FC;
|
||||
InterruptCallback = 0x8001552C;
|
||||
DMACallback = 0x8001555C;
|
||||
VSyncCallback = 0x8001558C;
|
||||
VSyncCallbacks = 0x800155C0;
|
||||
StopCallback = 0x800155F0;
|
||||
RestartCallback = 0x80015620;
|
||||
CheckCallback = 0x80015650;
|
||||
GetIntrMask = 0x80015660;
|
||||
SetIntrMask = 0x80015678;
|
||||
_96_remove = 0x80015C0C;
|
||||
ReturnFromException = 0x80015C1C;
|
||||
ResetEntryInt = 0x80015C2C;
|
||||
HookEntryInt = 0x80015C3C;
|
||||
EnterCriticalSection = 0x80015C4C;
|
||||
ExitCriticalSection = 0x80015C5C;
|
||||
GsGetWorkBase_1 = 0x80016054;
|
||||
exit = 0x80016064;
|
||||
puts = 0x80016074;
|
||||
setjmp = 0x80016084;
|
||||
strcat = 0x80016094;
|
||||
strcpy = 0x800160A4;
|
||||
strlen = 0x800160B4;
|
||||
memcpy = 0x800160C4;
|
||||
memset = 0x800160D4;
|
||||
rand = 0x800160E4;
|
||||
srand = 0x800160F4;
|
||||
malloc = 0x80016104;
|
||||
free = 0x80016114;
|
||||
printf = 0x80016124;
|
||||
fprintf = 0x80016134;
|
||||
memchr = 0x80016990;
|
||||
_card_info = 0x80016A0C;
|
||||
_card_load = 0x80016A1C;
|
||||
InitCARD = 0x80016A2C;
|
||||
StartCARD = 0x80016A3C;
|
||||
_card_clear = 0x80016A4C;
|
||||
_card_write = 0x80016A84;
|
||||
_new_card = 0x80016A94;
|
||||
rsin = 0x80016C9C;
|
||||
sin_1 = 0x80016CD8;
|
||||
SetFogNear = 0x80016E08;
|
||||
CompMatrix = 0x800172BC;
|
||||
SetMulMatrix = 0x800176F4;
|
||||
ReadColorMatrix = 0x80017C88;
|
||||
TransMatrix = 0x80017CDC;
|
||||
SetRotMatrix = 0x80017E3C;
|
||||
SetLightMatrix = 0x80017E6C;
|
||||
SetColorMatrix = 0x80017E9C;
|
||||
SetTransMatrix = 0x80017ECC;
|
||||
SetVertex0 = 0x80017EEC;
|
||||
SetVertex1 = 0x80017EFC;
|
||||
SetVertex2 = 0x80017F0C;
|
||||
SetVertexTri = 0x80017F1C;
|
||||
SetRGBfifo = 0x80017F3C;
|
||||
SetIR123 = 0x80017F50;
|
||||
SetIR0 = 0x80017F64;
|
||||
SetSZfifo3 = 0x80017F70;
|
||||
SetSZfifo4 = 0x80017F84;
|
||||
SetSXSYfifo = 0x80017F9C;
|
||||
SetRii = 0x80017FB0;
|
||||
SetMAC123 = 0x80017FC4;
|
||||
SetData32 = 0x80017FD8;
|
||||
SetDQA = 0x80017FE4;
|
||||
SetDQB = 0x80017FF0;
|
||||
SetBackColor = 0x80017FFC;
|
||||
SetFarColor = 0x8001801C;
|
||||
SetGeomOffset = 0x8001803C;
|
||||
SetGeomScreen = 0x8001805C;
|
||||
LocalLight = 0x8001806C;
|
||||
DpqColor = 0x80018090;
|
||||
NormalColor = 0x800180AC;
|
||||
NormalColor3 = 0x800180C8;
|
||||
NormalColorDpq = 0x80018104;
|
||||
NormalColorDpq3 = 0x80018128;
|
||||
NormalColorCol = 0x80018170;
|
||||
NormalColorCol3 = 0x80018190;
|
||||
ColorDpq = 0x800181D4;
|
||||
ColorCol = 0x800181FC;
|
||||
AverageSZ3 = 0x80018220;
|
||||
AverageSZ4 = 0x80018230;
|
||||
RotTransPers = 0x8001824C;
|
||||
RotTransPers3 = 0x8001827C;
|
||||
RotTrans = 0x800182DC;
|
||||
NormalClip = 0x8001830C;
|
||||
RotTransPers4 = 0x8001833C;
|
||||
RotAverage3 = 0x800183BC;
|
||||
RotAverage4 = 0x8001841C;
|
||||
RotAverageNclip3 = 0x8001849C;
|
||||
RotAverageNclip4 = 0x8001852C;
|
||||
RotAverageNclipColorCol3 = 0x800185DC;
|
||||
RotMatrix = 0x800186AC;
|
||||
RotMatrixYXZ = 0x8001893C;
|
||||
RotMatrixX = 0x80018BCC;
|
||||
RotMatrixY = 0x80018D6C;
|
||||
RotMatrixZ = 0x80018F0C;
|
||||
FlushCache = 0x800192CC;
|
||||
CdInit = 0x8001930C;
|
||||
DeliverEvent = 0x80019414;
|
||||
strcmp = 0x8001BC64;
|
||||
strncmp = 0x8001BC74;
|
||||
StClearRing = 0x8001C320;
|
||||
StSetStream = 0x8001C4C8;
|
||||
SsVoKeyOff = 0x8001F7AC;
|
||||
SsVoKeyOn = 0x8001F7E8;
|
||||
_SsInit = 0x80020328;
|
||||
SsInitHot = 0x80020410;
|
||||
SsVabClose = 0x800211D0;
|
||||
SsVabFakeBody = 0x800212AC;
|
||||
_SsVmSetProgVol = 0x80025840;
|
||||
_SsVmGetProgVol = 0x800258B0;
|
||||
_SsVmSetProgPan = 0x80025900;
|
||||
_SsVmSetProgVol_0 = 0x80025908;
|
||||
_SsVmGetProgPan = 0x80025970;
|
||||
_SsVmGetProgVol_0 = 0x80025978;
|
||||
_SsVmSetProgPan_0 = 0x800259C8;
|
||||
_SsVmGetProgPan_0 = 0x80025A38;
|
||||
SsUtKeyOnV = 0x800264A0;
|
||||
SsUtKeyOffV = 0x800267E8;
|
||||
SsUtPitchBend = 0x80026954;
|
||||
SsUtGetDetVVol = 0x80026DD8;
|
||||
SsUtSetDetVVol = 0x80026E14;
|
||||
SsUtGetDetVVol_0 = 0x80026E2C;
|
||||
SsUtSetDetVVol_0 = 0x80026E68;
|
||||
SsUtGetVVol = 0x80026E78;
|
||||
SsUtGetVVol_0 = 0x80026ECC;
|
||||
SsUtSetVVol = 0x80026F24;
|
||||
SsUtSetVVol_0 = 0x80026F78;
|
||||
OpenEvent = 0x800271C8;
|
||||
EnableEvent = 0x800271D8;
|
||||
CloseEvent = 0x800283A4;
|
||||
DisableEvent = 0x800283B4;
|
||||
SpuInitMalloc = 0x800283C4;
|
||||
SpuMalloc = 0x80028418;
|
||||
SpuMallocWithStartAddr = 0x80028D40;
|
||||
_spu_setReverbAttr = 0x80029810;
|
||||
SpuClearReverbWorkArea = 0x80029CE0;
|
||||
WaitEvent = 0x80029E7C;
|
||||
TestEvent = 0x8002AD5C;
|
||||
g_InterruptMask = 0x8002D348;
|
||||
_vsync_rcnt = 0x8002D374;
|
||||
aThisFunctionIs = 0x8002E1EA;
|
||||
g_CurrentPlayableCharacter = 0x8003C9A0;
|
||||
g_CurrentRoomTileLayout = 0x80073084;
|
||||
g_CurrentRoomHSize = 0x800730A4;
|
||||
g_CurrentRoomVSize = 0x800730A8;
|
||||
g_CurrentRoomLeft = 0x800730B0;
|
||||
g_CurrentRoomTop = 0x800730B4;
|
||||
g_CurrentRoomRight = 0x800730B8;
|
||||
g_CurrentRoomBottom = 0x800730BC;
|
||||
g_CurrentRoomWidth = 0x800730C8;
|
||||
g_CurrentRoomHeight = 0x800730CC;
|
||||
playerX = 0x800973F0;
|
||||
playerY = 0x800973F4;
|
||||
player_hp = 0x80097BA0;
|
||||
player_hp_max = 0x80097BA4;
|
||||
player_heart = 0x80097BA8;
|
||||
player_heart_max = 0x80097BAC;
|
||||
player_mp = 0x80097BB0;
|
||||
player_mp_max = 0x80097BB4;
|
||||
player_stat_str = 0x80097BB8;
|
||||
player_stat_con = 0x80097BBC;
|
||||
player_stat_int = 0x80097BC0;
|
||||
player_stat_lck = 0x80097BC4;
|
||||
player_level = 0x80097BE8;
|
||||
player_exp = 0x80097BEC;
|
||||
player_gold = 0x80097BF0;
|
||||
player_kill_count = 0x80097BF4;
|
||||
player_equip_right_hand = 0x80097BF8;
|
||||
player_equip_left_hand = 0x80097BFC;
|
||||
player_equip_head = 0x80097C00;
|
||||
player_equip_body = 0x80097C04;
|
||||
player_equip_cloak = 0x80097C08;
|
||||
player_equip_ring1 = 0x80097C0C;
|
||||
player_equip_ring2 = 0x80097C10;
|
||||
m_ptr_menu_text_kills = 0x800A8284;
|
||||
rect = 0x800ACD98;
|
||||
aPbav = 0x800B107C;
|
||||
aPbav_0 = 0x800B407C;
|
||||
aPbav_2 = 0x800B607C;
|
||||
aPbav_1 = 0x800B807C;
|
||||
aPqes_1 = 0x800BA07C;
|
||||
aPqes = 0x800BC37D;
|
||||
aPqes_0 = 0x800BCAC3;
|
||||
aO = 0x800DB3B4;
|
||||
aDr03x = 0x800DB44C;
|
||||
aGt403x = 0x800DB458;
|
||||
aG403x = 0x800DB464;
|
||||
aGt303x = 0x800DB470;
|
||||
aLine03x = 0x800DB47C;
|
||||
aSp1603x = 0x800DB488;
|
||||
aSp03x = 0x800DB494;
|
||||
aTile03x = 0x800DB4A0;
|
||||
aEnv03x = 0x800DB4AC;
|
||||
aEff03x = 0x800DB4B8;
|
||||
aRed = 0x800DB4C4;
|
||||
aGreen = 0x800DB4C8;
|
||||
aBlue = 0x800DB4D0;
|
||||
aHalfOn = 0x800DB4D8;
|
||||
aHalfOff = 0x800DB4E4;
|
||||
aRgb02x02x02x = 0x800DB4F0;
|
||||
a0104x04x = 0x800DB504;
|
||||
a2304x04x = 0x800DB514;
|
||||
jpt_800E4A64 = 0x800DB530;
|
||||
jpt_800E55C4 = 0x800DB560;
|
||||
a02x02x = 0x800DB720;
|
||||
aMemoryCardLoad = 0x800DB730;
|
||||
aEnding = 0x800DB744;
|
||||
aIwaLoad = 0x800DB74C;
|
||||
aIgaLoad = 0x800DB758;
|
||||
aHagiLoad = 0x800DB764;
|
||||
aLoadCBinSBin = 0x800DB770;
|
||||
aAlucard = 0x800DB784;
|
||||
aRichter = 0x800DB790;
|
||||
jpt_800E63C4 = 0x800DB7A0;
|
||||
jpt_800E7034 = 0x800DB7E8;
|
||||
jpt_800E7484 = 0x800DB808;
|
||||
jpt_800E7B18 = 0x800DB828;
|
||||
aSimCBinFTitle1 = 0x800DBB38;
|
||||
aSimCSoundDataS_0 = 0x800DBD14;
|
||||
aSimCSoundDataS_1 = 0x800DBD50;
|
||||
jpt_800E7C28 = 0x800DBD70;
|
||||
jpt_800E7E3C = 0x800DBD88;
|
||||
aSimCBin = 0x800DBDE0;
|
||||
aSimCSoundDataS = 0x800DBDF4;
|
||||
aSimCBinW0000Bi = 0x800DBE14;
|
||||
aSimCBinW1000Bi = 0x800DBE2C;
|
||||
aSimCBinF0000Bi = 0x800DBE44;
|
||||
aSimCBinF1000Bi = 0x800DBE5C;
|
||||
aSimCBinTt000Bi = 0x800DBE74;
|
||||
aSimCBinFt000Bi = 0x800DBE8C;
|
||||
aSimCBinMo000Bi = 0x800DBEA4;
|
||||
aOErrS = 0x800DBEBC;
|
||||
aRErr = 0x800DBEC8;
|
||||
aClErr = 0x800DBED0;
|
||||
aTrErr = 0x800DBED8;
|
||||
aBu1d1d = 0x800DBEE0;
|
||||
aBu1d1dS = 0x800DBEEC;
|
||||
jpt_800E98E4 = 0x800DBEF8;
|
||||
jpt_800E9934 = 0x800DBF10;
|
||||
jpt_800E9A48 = 0x800DBF28;
|
||||
aBaslus00067dra = 0x800DC194;
|
||||
jpt_800EA8C0 = 0x800DC1A8;
|
||||
jpt_800EB120 = 0x800DC1E8;
|
||||
aOver08x04x = 0x800DC228;
|
||||
jpt_800EE2FC = 0x800DC238;
|
||||
jpt_800EF590 = 0x800DC290;
|
||||
aSimCBinDemoKey = 0x800DC490;
|
||||
aSimCBinDk000Bi = 0x800DC4A8;
|
||||
aDemonstration = 0x800DC4C8;
|
||||
aDemoKeyIn04x04 = 0x800DC4D8;
|
||||
aDemoOverflow = 0x800DC4F0;
|
||||
jpt_800F0658 = 0x800DC500;
|
||||
jpt_800F096C = 0x800DC514;
|
||||
jpt_800F288C = 0x800DC534;
|
||||
jpt_800F3684 = 0x800DC55C;
|
||||
jpt_800F3758 = 0x800DC57C;
|
||||
jpt_800F3C14 = 0x800DC59C;
|
||||
jpt_800F42A0 = 0x800DC5B4;
|
||||
aWindowColorSet = 0x800DC5FC;
|
||||
jpt_800F8150 = 0x800DC68C;
|
||||
jpt_800F93A0 = 0x800DC6AC;
|
||||
jpt_800FA060 = 0x800DC71C;
|
||||
jpt_800FBCC4 = 0x800DC75C;
|
||||
jpt_800FC36C = 0x800DCB7C;
|
||||
jpt_800FC5B8 = 0x800DCB94;
|
||||
jpt_800FD6E0 = 0x800DCBAC;
|
||||
jpt_800FD7E0 = 0x800DCBC4;
|
||||
jpt_800FDB40 = 0x800DCBDC;
|
||||
aXXVQ = 0x800DCBF4;
|
||||
aAxearmor = 0x800DCC00;
|
||||
jpt_80102810 = 0x800DCC0C;
|
||||
jpt_80102918 = 0x800DCC2C;
|
||||
jpt_80102D9C = 0x800DCC54;
|
||||
aMemoryCard = 0x800DCC80;
|
||||
aMemoryCardIs = 0x800DCCAC;
|
||||
aCannot = 0x800DCCCC;
|
||||
aNoGame = 0x800DCCE8;
|
||||
aMemoryCard_0 = 0x800DCD24;
|
||||
aYes = 0x800DCDB0;
|
||||
aNo = 0x800DCDB8;
|
||||
jpt_80103F08 = 0x800DCDC0;
|
||||
aGold = 0x800DD0A8;
|
||||
aNz0 = 0x800DD0B0;
|
||||
aFNz0 = 0x800DD0B4;
|
||||
aTop = 0x800DD0BC;
|
||||
aTop_0 = 0x800DD0C0;
|
||||
aFTop = 0x800DD0C4;
|
||||
aTogi = 0x800DD0CC;
|
||||
aAre = 0x800DD0D4;
|
||||
aFAre = 0x800DD0D8;
|
||||
aMizu = 0x800DD0E0;
|
||||
aNo4 = 0x800DD0E8;
|
||||
aFNo4 = 0x800DD0EC;
|
||||
aCen = 0x800DD0F4;
|
||||
aFCen = 0x800DD0F8;
|
||||
aSiro1 = 0x800DD100;
|
||||
aNp3 = 0x800DD108;
|
||||
aFNp3 = 0x800DD10C;
|
||||
aFNo0 = 0x800DD180;
|
||||
aMpty = 0x800DEC54;
|
||||
aUnequip = 0x800DF9EC;
|
||||
a3pecial = 0x800DFA60;
|
||||
aAmiliar = 0x800DFA74;
|
||||
a2ichter = 0x800DFD38;
|
||||
a7indow = 0x800DFDFC;
|
||||
a2ight = 0x800DFE78;
|
||||
aUtton = 0x800DFEC0;
|
||||
m_menu_text_kills = 0x800DFEEC;
|
||||
aHealHpBySheddi = 0x800E00B0;
|
||||
aDarkMetamorpho = 0x800E00D4;
|
||||
aCausesItemsToM = 0x800E042C;
|
||||
aTransformIntoB = 0x800E05B4;
|
||||
aSoulOfBat = 0x800E05C8;
|
||||
jpt_8010812C = 0x800E0D38;
|
||||
aDmaError = 0x800E0D54;
|
||||
aSdHeaderError = 0x800E0D64;
|
||||
aDiskError = 0x800E0D78;
|
||||
aRetry = 0x800E0D84;
|
||||
aRetryXa = 0x800E0D8C;
|
||||
aCdShellOpenErr = 0x800E0D98;
|
||||
aCheckingCd = 0x800E0DB0;
|
||||
aErrorStep02x = 0x800E0DC0;
|
||||
jpt_80108CFC = 0x800E0DD8;
|
||||
aStep04x = 0x800E0E28;
|
||||
aBatIStep04x = 0x800E0E34;
|
||||
jpt_8010A86C = 0x800E0E48;
|
||||
jpt_8010AA30 = 0x800E0E88;
|
||||
jpt_8010AE88 = 0x800E0EC8;
|
||||
jpt_8010B3B4 = 0x800E0EF0;
|
||||
jpt_8010B658 = 0x800E0FC0;
|
||||
jpt_8010F424 = 0x800E108C;
|
||||
jpt_8010F48C = 0x800E12AC;
|
||||
jpt_8010F75C = 0x800E12C4;
|
||||
jpt_8010F958 = 0x800E12DC;
|
||||
jpt_8010F9E8 = 0x800E12F4;
|
||||
jpt_801109D0 = 0x800E1308;
|
||||
jpt_80110C1C = 0x800E1320;
|
||||
aPlPose02x = 0x800E1334;
|
||||
jpt_80110E54 = 0x800E1348;
|
||||
jpt_80111080 = 0x800E1360;
|
||||
jpt_8011131C = 0x800E1380;
|
||||
aCommandOk = 0x800E13A0;
|
||||
a100swordSetOk = 0x800E13AC;
|
||||
aCharal02x = 0x800E1400;
|
||||
jpt_80112264 = 0x800E1410;
|
||||
jpt_80112C9C = 0x800E1588;
|
||||
jpt_80113328 = 0x800E1750;
|
||||
jpt_80113938 = 0x800E18C8;
|
||||
jpt_80113B10 = 0x800E18E0;
|
||||
aDamKind04x = 0x800E18F4;
|
||||
jpt_801140A8 = 0x800E1908;
|
||||
jpt_801141F0 = 0x800E1948;
|
||||
jpt_80114300 = 0x800E1990;
|
||||
jpt_80114388 = 0x800E19B0;
|
||||
jpt_80115DF0 = 0x800E19D0;
|
||||
jpt_8011643C = 0x800E19E8;
|
||||
jpt_801169F4 = 0x800E1A00;
|
||||
jpt_80116CF8 = 0x800E1A20;
|
||||
aErrorStep = 0x800E1A38;
|
||||
jpt_80118D54 = 0x800E1A44;
|
||||
aStrY02x = 0x800E1A74;
|
||||
jpt_801195F4 = 0x800E1A84;
|
||||
aAtariNuki = 0x800E1AA4;
|
||||
jpt_8011AD40 = 0x800E1AB4;
|
||||
jpt_8011AD94 = 0x800E1AD4;
|
||||
jpt_8011C214 = 0x800E1AF4;
|
||||
jpt_8011C490 = 0x800E1B44;
|
||||
jpt_8011CB08 = 0x800E1B74;
|
||||
jpt_8011DC74 = 0x800E1B94;
|
||||
jpt_8011DD70 = 0x800E1BF4;
|
||||
jpt_8011DDCC = 0x800E1C54;
|
||||
jpt_8011E580 = 0x800E1CB4;
|
||||
jpt_8011E648 = 0x800E1CE4;
|
||||
jpt_8011E9D4 = 0x800E1D1C;
|
||||
jpt_8011EADC = 0x800E1D4C;
|
||||
jpt_80120C98 = 0x800E1D84;
|
||||
jpt_80120FDC = 0x800E1DA4;
|
||||
jpt_80122494 = 0x800E1DBC;
|
||||
jpt_80124410 = 0x800E1DD4;
|
||||
jpt_80126808 = 0x800E1E34;
|
||||
aLightTimer02x = 0x800E1E48;
|
||||
jpt_80126F54 = 0x800E1E5C;
|
||||
jpt_80128C94 = 0x800E1E7C;
|
||||
jpt_8012A918 = 0x800E1E90;
|
||||
jpt_8012D4D8 = 0x800E1EB0;
|
||||
jpt_8012EFE4 = 0x800E1EC8;
|
||||
jpt_8012FA74 = 0x800E1EF0;
|
||||
jpt_8012FAC0 = 0x800E1F18;
|
||||
jpt_80130384 = 0x800E1F30;
|
||||
jpt_801303DC = 0x800E1F58;
|
||||
jpt_80130728 = 0x800E1F70;
|
||||
jpt_80130788 = 0x800E1F98;
|
||||
jpt_80130B00 = 0x800E1FB0;
|
||||
jpt_80131014 = 0x800E1FD8;
|
||||
jpt_801314B4 = 0x800E2000;
|
||||
jpt_80132F94 = 0x800E2034;
|
||||
jpt_801332C4 = 0x800E205C;
|
||||
jpt_80133990 = 0x800E2074;
|
||||
jpt_80133C10 = 0x800E208C;
|
||||
jpt_80135058 = 0x800E20B4;
|
||||
jpt_801353DC = 0x800E2354;
|
||||
nullsub_8 = 0x800E2F34;
|
||||
entrypoint_sotn = 0x800E3988;
|
||||
nullsub_9 = 0x800E7384;
|
||||
SetRoomForegroundLayer = 0x800ED774;
|
||||
SetRoomBackgroundLayer = 0x800ED90C;
|
||||
LoadRoomLayer = 0x800ED9F4;
|
||||
CheckCollision = 0x800EF45C;
|
||||
drawMenuChar = 0x800F678C;
|
||||
drawMenuInt = 0x800F68F4;
|
||||
setMenuBackgroundRect = 0x80107330;
|
||||
CopyMapOverlayCallback = 0x801074BC;
|
||||
nullsub_10 = 0x801362A4;
|
||||
g_someValue = 0x8013792C;
|
||||
g_OverlayCopySrcIndex = 0x80137F70;
|
||||
g_OverlayCopyDstIndex = 0x80137F74;
|
||||
g_OverlayCopySrc = 0x80137F80;
|
||||
g_OverlayCopyDst = 0x80137F84;
|
||||
g_OverlayBlockCount = 0x80137F8C;
|
||||
g_OverlayLastBlockSize = 0x80137F90;
|
||||
p = 0x80180014;
|
561
config/sym.main.txt
Normal file
561
config/sym.main.txt
Normal file
@ -0,0 +1,561 @@
|
||||
aDraBin1 = 0x80010040;
|
||||
aFMapBin1 = 0x8001004C;
|
||||
a0123456789abcd = 0x8001005C;
|
||||
jpt_80011B20 = 0x80010074;
|
||||
aClip3d3dDD = 0x80010120;
|
||||
aOfs3d3d = 0x80010138;
|
||||
aTwDDDD = 0x80010148;
|
||||
aDtdD = 0x80010160;
|
||||
aDfeD = 0x8001016C;
|
||||
aDisp3d3dDD = 0x80010178;
|
||||
aScreen3d3dDD = 0x80010194;
|
||||
aIsinterD = 0x800101B0;
|
||||
aIsrgb24D = 0x800101BC;
|
||||
aIdSysCV1831995 = 0x800101C8;
|
||||
aSBadRect = 0x800102B0;
|
||||
str = 0x800102D4;
|
||||
aLoadimage = 0x800102E0;
|
||||
aStoreimage = 0x800102EC;
|
||||
aMoveimage = 0x800102F8;
|
||||
aVsyncTimeout = 0x800103C4;
|
||||
aIdIntrCV173199 = 0x800103D4;
|
||||
a0123456789abcd_0 = 0x8001046C;
|
||||
a0123456789abcd_1 = 0x80010480;
|
||||
jpt_800163F4 = 0x80010494;
|
||||
aNone = 0x80010560;
|
||||
aCdlreads = 0x80010568;
|
||||
aCdlseekp = 0x80010574;
|
||||
aCdlseekl = 0x80010580;
|
||||
aCdlgettd = 0x8001058C;
|
||||
aCdlgettn = 0x80010598;
|
||||
aCdlgetlocp = 0x800105A4;
|
||||
aCdlgetlocl = 0x800105B0;
|
||||
aCdldemute = 0x800105DC;
|
||||
aCdlmute = 0x800105E8;
|
||||
aCdlreset = 0x800105F0;
|
||||
aCdlpause = 0x800105FC;
|
||||
aCdlstop = 0x80010608;
|
||||
aCdlstandby = 0x80010610;
|
||||
aCdlreadn = 0x8001061C;
|
||||
aCdlbackword = 0x80010628;
|
||||
aCdlforward = 0x80010634;
|
||||
aCdlplay = 0x80010640;
|
||||
aCdlsetloc = 0x80010648;
|
||||
aCdlnop = 0x80010654;
|
||||
aCdlsync = 0x8001065C;
|
||||
aDiskerror_0 = 0x80010664;
|
||||
aDataend = 0x80010670;
|
||||
aAcknowledge = 0x80010678;
|
||||
aComplete = 0x80010684;
|
||||
aDataready = 0x80010690;
|
||||
aNointr = 0x8001069C;
|
||||
aCdTimeout = 0x800106A4;
|
||||
aDiskerror = 0x800106D0;
|
||||
aCdromUnknownIn = 0x800106F8;
|
||||
jpt_80019DE8 = 0x80010718;
|
||||
aCdSync = 0x8001072C;
|
||||
aCdReady = 0x80010734;
|
||||
aCdCw = 0x80010758;
|
||||
aIdBiosCV177199 = 0x80010760;
|
||||
aCdInit = 0x80010794;
|
||||
aCdDatasync = 0x800107AC;
|
||||
aSDirWasNotFoun = 0x800107D4;
|
||||
aCd001 = 0x80010870;
|
||||
aCdreadSectorEr = 0x800109A4;
|
||||
aCdreadShellOpe = 0x800109BC;
|
||||
aCdreadRetry = 0x800109D4;
|
||||
jpt_8001DE24 = 0x80010A60;
|
||||
jpt_8001EECC = 0x80010C48;
|
||||
jpt_8001EFB8 = 0x80010CA8;
|
||||
jpt_80020818 = 0x80010CD4;
|
||||
aWaitReset = 0x80010CFC;
|
||||
aWaitWrdyHL = 0x80010D0C;
|
||||
aWaitDmafClearW = 0x80010D20;
|
||||
aSpuTimeOutWait = 0x80010D34;
|
||||
jpt_8002A518 = 0x80010D74;
|
||||
jpt_8002A5E8 = 0x80010D94;
|
||||
jpt_8002ADFC = 0x80010DB4;
|
||||
jpt_8002AEC4 = 0x80010DD4;
|
||||
__main = 0x80010DF4;
|
||||
start = 0x80010DFC;
|
||||
stup1 = 0x80010E20;
|
||||
stup0 = 0x80010E9C;
|
||||
main = 0x80010EB8;
|
||||
SetDumpFnt = 0x8001134C;
|
||||
FntLoad = 0x8001138C;
|
||||
FntOpen = 0x8001142C;
|
||||
FntFlush = 0x800116E4;
|
||||
DumpClut = 0x80011EA0;
|
||||
AddPrim = 0x80011F18;
|
||||
setSemiTrans = 0x80011FCC;
|
||||
setShadeTex = 0x80011FF4;
|
||||
setPolyGT3 = 0x80012058;
|
||||
setPolyG4 = 0x80012094;
|
||||
setPolyGT4 = 0x800120A8;
|
||||
setSprt8 = 0x800120BC;
|
||||
setSprt16 = 0x800120D0;
|
||||
setSprt = 0x800120E4;
|
||||
setTile = 0x80012134;
|
||||
setLineG2 = 0x80012170;
|
||||
ResetGraph = 0x80012434;
|
||||
SetGraphReverse = 0x80012604;
|
||||
SetGraphQueue = 0x8001277C;
|
||||
GsGetWorkBase = 0x80012818;
|
||||
GsGetWorkBase_0 = 0x80012828;
|
||||
DrawSyncCallback = 0x80012838;
|
||||
SetDispMask = 0x80012894;
|
||||
DrawSync = 0x8001290C;
|
||||
debugLog = 0x80012978;
|
||||
ClearImage = 0x80012A90;
|
||||
LoadImage = 0x80012B24;
|
||||
StoreImage = 0x80012B88;
|
||||
MoveImage = 0x80012BEC;
|
||||
ClearOTag = 0x80012C90;
|
||||
ClearOTagR = 0x80012D3C;
|
||||
DrawOTag = 0x80012E1C;
|
||||
PutDrawEnv = 0x80012E8C;
|
||||
PutDispEnv = 0x80012FE4;
|
||||
InitHeap = 0x80015138;
|
||||
Load = 0x80015148;
|
||||
Exec = 0x80015158;
|
||||
GPU_cw = 0x80015168;
|
||||
_bu_init = 0x80015178;
|
||||
open = 0x80015188;
|
||||
lseek = 0x80015198;
|
||||
read = 0x800151A8;
|
||||
write = 0x800151B8;
|
||||
close = 0x800151C8;
|
||||
format = 0x800151D8;
|
||||
firstfile = 0x800151E8;
|
||||
nextfile = 0x800151F8;
|
||||
erase = 0x80015208;
|
||||
Krom2RawAdd = 0x80015218;
|
||||
ChangeClearPAD = 0x80015228;
|
||||
StopPAD = 0x800152D8;
|
||||
PAD_init2 = 0x800152E8;
|
||||
PAD_dr = 0x800152F8;
|
||||
VSync = 0x80015308;
|
||||
VSyncWait = 0x80015450;
|
||||
ChangeClearRCnt = 0x800154EC;
|
||||
ResetCallback = 0x800154FC;
|
||||
InterruptCallback = 0x8001552C;
|
||||
DMACallback = 0x8001555C;
|
||||
VSyncCallback = 0x8001558C;
|
||||
VSyncCallbacks = 0x800155C0;
|
||||
StopCallback = 0x800155F0;
|
||||
RestartCallback = 0x80015620;
|
||||
CheckCallback = 0x80015650;
|
||||
GetIntrMask = 0x80015660;
|
||||
SetIntrMask = 0x80015678;
|
||||
_96_remove = 0x80015C0C;
|
||||
ReturnFromException = 0x80015C1C;
|
||||
ResetEntryInt = 0x80015C2C;
|
||||
HookEntryInt = 0x80015C3C;
|
||||
EnterCriticalSection = 0x80015C4C;
|
||||
ExitCriticalSection = 0x80015C5C;
|
||||
GsGetWorkBase_1 = 0x80016054;
|
||||
exit = 0x80016064;
|
||||
puts = 0x80016074;
|
||||
setjmp = 0x80016084;
|
||||
strcat = 0x80016094;
|
||||
strcpy = 0x800160A4;
|
||||
strlen = 0x800160B4;
|
||||
memcpy = 0x800160C4;
|
||||
memset = 0x800160D4;
|
||||
rand = 0x800160E4;
|
||||
srand = 0x800160F4;
|
||||
malloc = 0x80016104;
|
||||
free = 0x80016114;
|
||||
printf = 0x80016124;
|
||||
fprintf = 0x80016134;
|
||||
memchr = 0x80016990;
|
||||
_card_info = 0x80016A0C;
|
||||
_card_load = 0x80016A1C;
|
||||
InitCARD = 0x80016A2C;
|
||||
StartCARD = 0x80016A3C;
|
||||
_card_clear = 0x80016A4C;
|
||||
_card_write = 0x80016A84;
|
||||
_new_card = 0x80016A94;
|
||||
rsin = 0x80016C9C;
|
||||
sin_1 = 0x80016CD8;
|
||||
SetFogNear = 0x80016E08;
|
||||
CompMatrix = 0x800172BC;
|
||||
SetMulMatrix = 0x800176F4;
|
||||
ReadColorMatrix = 0x80017C88;
|
||||
TransMatrix = 0x80017CDC;
|
||||
SetRotMatrix = 0x80017E3C;
|
||||
SetLightMatrix = 0x80017E6C;
|
||||
SetColorMatrix = 0x80017E9C;
|
||||
SetTransMatrix = 0x80017ECC;
|
||||
SetVertex0 = 0x80017EEC;
|
||||
SetVertex1 = 0x80017EFC;
|
||||
SetVertex2 = 0x80017F0C;
|
||||
SetVertexTri = 0x80017F1C;
|
||||
SetRGBfifo = 0x80017F3C;
|
||||
SetIR123 = 0x80017F50;
|
||||
SetIR0 = 0x80017F64;
|
||||
SetSZfifo3 = 0x80017F70;
|
||||
SetSZfifo4 = 0x80017F84;
|
||||
SetSXSYfifo = 0x80017F9C;
|
||||
SetRii = 0x80017FB0;
|
||||
SetMAC123 = 0x80017FC4;
|
||||
SetData32 = 0x80017FD8;
|
||||
SetDQA = 0x80017FE4;
|
||||
SetDQB = 0x80017FF0;
|
||||
SetBackColor = 0x80017FFC;
|
||||
SetFarColor = 0x8001801C;
|
||||
SetGeomOffset = 0x8001803C;
|
||||
SetGeomScreen = 0x8001805C;
|
||||
LocalLight = 0x8001806C;
|
||||
DpqColor = 0x80018090;
|
||||
NormalColor = 0x800180AC;
|
||||
NormalColor3 = 0x800180C8;
|
||||
NormalColorDpq = 0x80018104;
|
||||
NormalColorDpq3 = 0x80018128;
|
||||
NormalColorCol = 0x80018170;
|
||||
NormalColorCol3 = 0x80018190;
|
||||
ColorDpq = 0x800181D4;
|
||||
ColorCol = 0x800181FC;
|
||||
AverageSZ3 = 0x80018220;
|
||||
AverageSZ4 = 0x80018230;
|
||||
RotTransPers = 0x8001824C;
|
||||
RotTransPers3 = 0x8001827C;
|
||||
RotTrans = 0x800182DC;
|
||||
NormalClip = 0x8001830C;
|
||||
RotTransPers4 = 0x8001833C;
|
||||
RotAverage3 = 0x800183BC;
|
||||
RotAverage4 = 0x8001841C;
|
||||
RotAverageNclip3 = 0x8001849C;
|
||||
RotAverageNclip4 = 0x8001852C;
|
||||
RotAverageNclipColorCol3 = 0x800185DC;
|
||||
RotMatrix = 0x800186AC;
|
||||
RotMatrixYXZ = 0x8001893C;
|
||||
RotMatrixX = 0x80018BCC;
|
||||
RotMatrixY = 0x80018D6C;
|
||||
RotMatrixZ = 0x80018F0C;
|
||||
FlushCache = 0x800192CC;
|
||||
CdInit = 0x8001930C;
|
||||
DeliverEvent = 0x80019414;
|
||||
strcmp = 0x8001BC64;
|
||||
strncmp = 0x8001BC74;
|
||||
StClearRing = 0x8001C320;
|
||||
StSetStream = 0x8001C4C8;
|
||||
SsVoKeyOff = 0x8001F7AC;
|
||||
SsVoKeyOn = 0x8001F7E8;
|
||||
_SsInit = 0x80020328;
|
||||
SsInitHot = 0x80020410;
|
||||
SsVabClose = 0x800211D0;
|
||||
SsVabFakeBody = 0x800212AC;
|
||||
_SsVmSetProgVol = 0x80025840;
|
||||
_SsVmGetProgVol = 0x800258B0;
|
||||
_SsVmSetProgPan = 0x80025900;
|
||||
_SsVmSetProgVol_0 = 0x80025908;
|
||||
_SsVmGetProgPan = 0x80025970;
|
||||
_SsVmGetProgVol_0 = 0x80025978;
|
||||
_SsVmSetProgPan_0 = 0x800259C8;
|
||||
_SsVmGetProgPan_0 = 0x80025A38;
|
||||
SsUtKeyOnV = 0x800264A0;
|
||||
SsUtKeyOffV = 0x800267E8;
|
||||
SsUtPitchBend = 0x80026954;
|
||||
SsUtGetDetVVol = 0x80026DD8;
|
||||
SsUtSetDetVVol = 0x80026E14;
|
||||
SsUtGetDetVVol_0 = 0x80026E2C;
|
||||
SsUtSetDetVVol_0 = 0x80026E68;
|
||||
SsUtGetVVol = 0x80026E78;
|
||||
SsUtGetVVol_0 = 0x80026ECC;
|
||||
SsUtSetVVol = 0x80026F24;
|
||||
SsUtSetVVol_0 = 0x80026F78;
|
||||
OpenEvent = 0x800271C8;
|
||||
EnableEvent = 0x800271D8;
|
||||
CloseEvent = 0x800283A4;
|
||||
DisableEvent = 0x800283B4;
|
||||
SpuInitMalloc = 0x800283C4;
|
||||
SpuMalloc = 0x80028418;
|
||||
SpuMallocWithStartAddr = 0x80028D40;
|
||||
_spu_setReverbAttr = 0x80029810;
|
||||
SpuClearReverbWorkArea = 0x80029CE0;
|
||||
WaitEvent = 0x80029E7C;
|
||||
TestEvent = 0x8002AD5C;
|
||||
g_InterruptMask = 0x8002D348;
|
||||
_vsync_rcnt = 0x8002D374;
|
||||
aThisFunctionIs = 0x8002E1EA;
|
||||
g_CurrentPlayableCharacter = 0x8003C9A0;
|
||||
g_CurrentRoomTileLayout = 0x80073084;
|
||||
g_CurrentRoomHSize = 0x800730A4;
|
||||
g_CurrentRoomVSize = 0x800730A8;
|
||||
g_CurrentRoomLeft = 0x800730B0;
|
||||
g_CurrentRoomTop = 0x800730B4;
|
||||
g_CurrentRoomRight = 0x800730B8;
|
||||
g_CurrentRoomBottom = 0x800730BC;
|
||||
g_CurrentRoomWidth = 0x800730C8;
|
||||
g_CurrentRoomHeight = 0x800730CC;
|
||||
playerX = 0x800973F0;
|
||||
playerY = 0x800973F4;
|
||||
player_hp = 0x80097BA0;
|
||||
player_hp_max = 0x80097BA4;
|
||||
player_heart = 0x80097BA8;
|
||||
player_heart_max = 0x80097BAC;
|
||||
player_mp = 0x80097BB0;
|
||||
player_mp_max = 0x80097BB4;
|
||||
player_stat_str = 0x80097BB8;
|
||||
player_stat_con = 0x80097BBC;
|
||||
player_stat_int = 0x80097BC0;
|
||||
player_stat_lck = 0x80097BC4;
|
||||
player_level = 0x80097BE8;
|
||||
player_exp = 0x80097BEC;
|
||||
player_gold = 0x80097BF0;
|
||||
player_kill_count = 0x80097BF4;
|
||||
player_equip_right_hand = 0x80097BF8;
|
||||
player_equip_left_hand = 0x80097BFC;
|
||||
player_equip_head = 0x80097C00;
|
||||
player_equip_body = 0x80097C04;
|
||||
player_equip_cloak = 0x80097C08;
|
||||
player_equip_ring1 = 0x80097C0C;
|
||||
player_equip_ring2 = 0x80097C10;
|
||||
m_ptr_menu_text_kills = 0x800A8284;
|
||||
rect = 0x800ACD98;
|
||||
aPbav = 0x800B107C;
|
||||
aPbav_0 = 0x800B407C;
|
||||
aPbav_2 = 0x800B607C;
|
||||
aPbav_1 = 0x800B807C;
|
||||
aPqes_1 = 0x800BA07C;
|
||||
aPqes = 0x800BC37D;
|
||||
aPqes_0 = 0x800BCAC3;
|
||||
aO = 0x800DB3B4;
|
||||
aDr03x = 0x800DB44C;
|
||||
aGt403x = 0x800DB458;
|
||||
aG403x = 0x800DB464;
|
||||
aGt303x = 0x800DB470;
|
||||
aLine03x = 0x800DB47C;
|
||||
aSp1603x = 0x800DB488;
|
||||
aSp03x = 0x800DB494;
|
||||
aTile03x = 0x800DB4A0;
|
||||
aEnv03x = 0x800DB4AC;
|
||||
aEff03x = 0x800DB4B8;
|
||||
aRed = 0x800DB4C4;
|
||||
aGreen = 0x800DB4C8;
|
||||
aBlue = 0x800DB4D0;
|
||||
aHalfOn = 0x800DB4D8;
|
||||
aHalfOff = 0x800DB4E4;
|
||||
aRgb02x02x02x = 0x800DB4F0;
|
||||
a0104x04x = 0x800DB504;
|
||||
a2304x04x = 0x800DB514;
|
||||
jpt_800E4A64 = 0x800DB530;
|
||||
jpt_800E55C4 = 0x800DB560;
|
||||
a02x02x = 0x800DB720;
|
||||
aMemoryCardLoad = 0x800DB730;
|
||||
aEnding = 0x800DB744;
|
||||
aIwaLoad = 0x800DB74C;
|
||||
aIgaLoad = 0x800DB758;
|
||||
aHagiLoad = 0x800DB764;
|
||||
aLoadCBinSBin = 0x800DB770;
|
||||
aAlucard = 0x800DB784;
|
||||
aRichter = 0x800DB790;
|
||||
jpt_800E63C4 = 0x800DB7A0;
|
||||
jpt_800E7034 = 0x800DB7E8;
|
||||
jpt_800E7484 = 0x800DB808;
|
||||
jpt_800E7B18 = 0x800DB828;
|
||||
aSimCBinFTitle1 = 0x800DBB38;
|
||||
aSimCSoundDataS_0 = 0x800DBD14;
|
||||
aSimCSoundDataS_1 = 0x800DBD50;
|
||||
jpt_800E7C28 = 0x800DBD70;
|
||||
jpt_800E7E3C = 0x800DBD88;
|
||||
aSimCBin = 0x800DBDE0;
|
||||
aSimCSoundDataS = 0x800DBDF4;
|
||||
aSimCBinW0000Bi = 0x800DBE14;
|
||||
aSimCBinW1000Bi = 0x800DBE2C;
|
||||
aSimCBinF0000Bi = 0x800DBE44;
|
||||
aSimCBinF1000Bi = 0x800DBE5C;
|
||||
aSimCBinTt000Bi = 0x800DBE74;
|
||||
aSimCBinFt000Bi = 0x800DBE8C;
|
||||
aSimCBinMo000Bi = 0x800DBEA4;
|
||||
aOErrS = 0x800DBEBC;
|
||||
aRErr = 0x800DBEC8;
|
||||
aClErr = 0x800DBED0;
|
||||
aTrErr = 0x800DBED8;
|
||||
aBu1d1d = 0x800DBEE0;
|
||||
aBu1d1dS = 0x800DBEEC;
|
||||
jpt_800E98E4 = 0x800DBEF8;
|
||||
jpt_800E9934 = 0x800DBF10;
|
||||
jpt_800E9A48 = 0x800DBF28;
|
||||
aBaslus00067dra = 0x800DC194;
|
||||
jpt_800EA8C0 = 0x800DC1A8;
|
||||
jpt_800EB120 = 0x800DC1E8;
|
||||
aOver08x04x = 0x800DC228;
|
||||
jpt_800EE2FC = 0x800DC238;
|
||||
jpt_800EF590 = 0x800DC290;
|
||||
aSimCBinDemoKey = 0x800DC490;
|
||||
aSimCBinDk000Bi = 0x800DC4A8;
|
||||
aDemonstration = 0x800DC4C8;
|
||||
aDemoKeyIn04x04 = 0x800DC4D8;
|
||||
aDemoOverflow = 0x800DC4F0;
|
||||
jpt_800F0658 = 0x800DC500;
|
||||
jpt_800F096C = 0x800DC514;
|
||||
jpt_800F288C = 0x800DC534;
|
||||
jpt_800F3684 = 0x800DC55C;
|
||||
jpt_800F3758 = 0x800DC57C;
|
||||
jpt_800F3C14 = 0x800DC59C;
|
||||
jpt_800F42A0 = 0x800DC5B4;
|
||||
aWindowColorSet = 0x800DC5FC;
|
||||
jpt_800F8150 = 0x800DC68C;
|
||||
jpt_800F93A0 = 0x800DC6AC;
|
||||
jpt_800FA060 = 0x800DC71C;
|
||||
jpt_800FBCC4 = 0x800DC75C;
|
||||
jpt_800FC36C = 0x800DCB7C;
|
||||
jpt_800FC5B8 = 0x800DCB94;
|
||||
jpt_800FD6E0 = 0x800DCBAC;
|
||||
jpt_800FD7E0 = 0x800DCBC4;
|
||||
jpt_800FDB40 = 0x800DCBDC;
|
||||
aXXVQ = 0x800DCBF4;
|
||||
aAxearmor = 0x800DCC00;
|
||||
jpt_80102810 = 0x800DCC0C;
|
||||
jpt_80102918 = 0x800DCC2C;
|
||||
jpt_80102D9C = 0x800DCC54;
|
||||
aMemoryCard = 0x800DCC80;
|
||||
aMemoryCardIs = 0x800DCCAC;
|
||||
aCannot = 0x800DCCCC;
|
||||
aNoGame = 0x800DCCE8;
|
||||
aMemoryCard_0 = 0x800DCD24;
|
||||
aYes = 0x800DCDB0;
|
||||
aNo = 0x800DCDB8;
|
||||
jpt_80103F08 = 0x800DCDC0;
|
||||
aGold = 0x800DD0A8;
|
||||
aNz0 = 0x800DD0B0;
|
||||
aFNz0 = 0x800DD0B4;
|
||||
aTop = 0x800DD0BC;
|
||||
aTop_0 = 0x800DD0C0;
|
||||
aFTop = 0x800DD0C4;
|
||||
aTogi = 0x800DD0CC;
|
||||
aAre = 0x800DD0D4;
|
||||
aFAre = 0x800DD0D8;
|
||||
aMizu = 0x800DD0E0;
|
||||
aNo4 = 0x800DD0E8;
|
||||
aFNo4 = 0x800DD0EC;
|
||||
aCen = 0x800DD0F4;
|
||||
aFCen = 0x800DD0F8;
|
||||
aSiro1 = 0x800DD100;
|
||||
aNp3 = 0x800DD108;
|
||||
aFNp3 = 0x800DD10C;
|
||||
aFNo0 = 0x800DD180;
|
||||
aMpty = 0x800DEC54;
|
||||
aUnequip = 0x800DF9EC;
|
||||
a3pecial = 0x800DFA60;
|
||||
aAmiliar = 0x800DFA74;
|
||||
a2ichter = 0x800DFD38;
|
||||
a7indow = 0x800DFDFC;
|
||||
a2ight = 0x800DFE78;
|
||||
aUtton = 0x800DFEC0;
|
||||
m_menu_text_kills = 0x800DFEEC;
|
||||
aHealHpBySheddi = 0x800E00B0;
|
||||
aDarkMetamorpho = 0x800E00D4;
|
||||
aCausesItemsToM = 0x800E042C;
|
||||
aTransformIntoB = 0x800E05B4;
|
||||
aSoulOfBat = 0x800E05C8;
|
||||
jpt_8010812C = 0x800E0D38;
|
||||
aDmaError = 0x800E0D54;
|
||||
aSdHeaderError = 0x800E0D64;
|
||||
aDiskError = 0x800E0D78;
|
||||
aRetry = 0x800E0D84;
|
||||
aRetryXa = 0x800E0D8C;
|
||||
aCdShellOpenErr = 0x800E0D98;
|
||||
aCheckingCd = 0x800E0DB0;
|
||||
aErrorStep02x = 0x800E0DC0;
|
||||
jpt_80108CFC = 0x800E0DD8;
|
||||
aStep04x = 0x800E0E28;
|
||||
aBatIStep04x = 0x800E0E34;
|
||||
jpt_8010A86C = 0x800E0E48;
|
||||
jpt_8010AA30 = 0x800E0E88;
|
||||
jpt_8010AE88 = 0x800E0EC8;
|
||||
jpt_8010B3B4 = 0x800E0EF0;
|
||||
jpt_8010B658 = 0x800E0FC0;
|
||||
jpt_8010F424 = 0x800E108C;
|
||||
jpt_8010F48C = 0x800E12AC;
|
||||
jpt_8010F75C = 0x800E12C4;
|
||||
jpt_8010F958 = 0x800E12DC;
|
||||
jpt_8010F9E8 = 0x800E12F4;
|
||||
jpt_801109D0 = 0x800E1308;
|
||||
jpt_80110C1C = 0x800E1320;
|
||||
aPlPose02x = 0x800E1334;
|
||||
jpt_80110E54 = 0x800E1348;
|
||||
jpt_80111080 = 0x800E1360;
|
||||
jpt_8011131C = 0x800E1380;
|
||||
aCommandOk = 0x800E13A0;
|
||||
a100swordSetOk = 0x800E13AC;
|
||||
aCharal02x = 0x800E1400;
|
||||
jpt_80112264 = 0x800E1410;
|
||||
jpt_80112C9C = 0x800E1588;
|
||||
jpt_80113328 = 0x800E1750;
|
||||
jpt_80113938 = 0x800E18C8;
|
||||
jpt_80113B10 = 0x800E18E0;
|
||||
aDamKind04x = 0x800E18F4;
|
||||
jpt_801140A8 = 0x800E1908;
|
||||
jpt_801141F0 = 0x800E1948;
|
||||
jpt_80114300 = 0x800E1990;
|
||||
jpt_80114388 = 0x800E19B0;
|
||||
jpt_80115DF0 = 0x800E19D0;
|
||||
jpt_8011643C = 0x800E19E8;
|
||||
jpt_801169F4 = 0x800E1A00;
|
||||
jpt_80116CF8 = 0x800E1A20;
|
||||
aErrorStep = 0x800E1A38;
|
||||
jpt_80118D54 = 0x800E1A44;
|
||||
aStrY02x = 0x800E1A74;
|
||||
jpt_801195F4 = 0x800E1A84;
|
||||
aAtariNuki = 0x800E1AA4;
|
||||
jpt_8011AD40 = 0x800E1AB4;
|
||||
jpt_8011AD94 = 0x800E1AD4;
|
||||
jpt_8011C214 = 0x800E1AF4;
|
||||
jpt_8011C490 = 0x800E1B44;
|
||||
jpt_8011CB08 = 0x800E1B74;
|
||||
jpt_8011DC74 = 0x800E1B94;
|
||||
jpt_8011DD70 = 0x800E1BF4;
|
||||
jpt_8011DDCC = 0x800E1C54;
|
||||
jpt_8011E580 = 0x800E1CB4;
|
||||
jpt_8011E648 = 0x800E1CE4;
|
||||
jpt_8011E9D4 = 0x800E1D1C;
|
||||
jpt_8011EADC = 0x800E1D4C;
|
||||
jpt_80120C98 = 0x800E1D84;
|
||||
jpt_80120FDC = 0x800E1DA4;
|
||||
jpt_80122494 = 0x800E1DBC;
|
||||
jpt_80124410 = 0x800E1DD4;
|
||||
jpt_80126808 = 0x800E1E34;
|
||||
aLightTimer02x = 0x800E1E48;
|
||||
jpt_80126F54 = 0x800E1E5C;
|
||||
jpt_80128C94 = 0x800E1E7C;
|
||||
jpt_8012A918 = 0x800E1E90;
|
||||
jpt_8012D4D8 = 0x800E1EB0;
|
||||
jpt_8012EFE4 = 0x800E1EC8;
|
||||
jpt_8012FA74 = 0x800E1EF0;
|
||||
jpt_8012FAC0 = 0x800E1F18;
|
||||
jpt_80130384 = 0x800E1F30;
|
||||
jpt_801303DC = 0x800E1F58;
|
||||
jpt_80130728 = 0x800E1F70;
|
||||
jpt_80130788 = 0x800E1F98;
|
||||
jpt_80130B00 = 0x800E1FB0;
|
||||
jpt_80131014 = 0x800E1FD8;
|
||||
jpt_801314B4 = 0x800E2000;
|
||||
jpt_80132F94 = 0x800E2034;
|
||||
jpt_801332C4 = 0x800E205C;
|
||||
jpt_80133990 = 0x800E2074;
|
||||
jpt_80133C10 = 0x800E208C;
|
||||
jpt_80135058 = 0x800E20B4;
|
||||
jpt_801353DC = 0x800E2354;
|
||||
nullsub_8 = 0x800E2F34;
|
||||
entrypoint_sotn = 0x800E3988;
|
||||
nullsub_9 = 0x800E7384;
|
||||
SetRoomForegroundLayer = 0x800ED774;
|
||||
SetRoomBackgroundLayer = 0x800ED90C;
|
||||
LoadRoomLayer = 0x800ED9F4;
|
||||
CheckCollision = 0x800EF45C;
|
||||
drawMenuChar = 0x800F678C;
|
||||
drawMenuInt = 0x800F68F4;
|
||||
setMenuBackgroundRect = 0x80107330;
|
||||
CopyMapOverlayCallback = 0x801074BC;
|
||||
nullsub_10 = 0x801362A4;
|
||||
g_someValue = 0x8013792C;
|
||||
g_OverlayCopySrcIndex = 0x80137F70;
|
||||
g_OverlayCopyDstIndex = 0x80137F74;
|
||||
g_OverlayCopySrc = 0x80137F80;
|
||||
g_OverlayCopyDst = 0x80137F84;
|
||||
g_OverlayBlockCount = 0x80137F8C;
|
||||
g_OverlayLastBlockSize = 0x80137F90;
|
||||
p = 0x80180014;
|
8
diff_settings.py
Normal file
8
diff_settings.py
Normal file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
def apply(config, args):
|
||||
config["arch"] = "mipsel"
|
||||
config['baseimg'] = f'dra.bin'
|
||||
config['myimg'] = f'build/dra.bin'
|
||||
config['mapfile'] = f'build/dra.map'
|
||||
config['source_directories'] = ['src/dra', 'include', 'asm/dra']
|
7
include/common.h
Normal file
7
include/common.h
Normal file
@ -0,0 +1,7 @@
|
||||
#ifndef COMMON_H
|
||||
#define COMMON_H
|
||||
|
||||
#include "include_asm.h"
|
||||
#include "types.h"
|
||||
|
||||
#endif
|
31
include/dra.h
Normal file
31
include/dra.h
Normal file
@ -0,0 +1,31 @@
|
||||
#ifndef DRA_H
|
||||
#define DRA_H
|
||||
#include "main.h"
|
||||
|
||||
extern s8 D_80073512;
|
||||
extern s32 D_80138F20;
|
||||
extern s32 D_80138F7C;
|
||||
extern s8 D_80139020;
|
||||
extern s16 D_801396EA;
|
||||
extern u16 D_801396F4;
|
||||
extern s32 D_8013980C;
|
||||
extern u8 D_80139810;
|
||||
extern s32 D_8013B660;
|
||||
extern s16 D_8013B668;
|
||||
extern s32 D_8013B694;
|
||||
extern s32 D_80138784[487];
|
||||
|
||||
void func_800E92E4(void);
|
||||
void func_8010E0A8(void);
|
||||
void func_80111928(void);
|
||||
void func_80131EBC(s32 arg0, s32 arg1);
|
||||
void func_80131ED8(s32 value);
|
||||
void func_80131EE8(void);
|
||||
void func_80131F04(void);
|
||||
s32 func_80131F28(void);
|
||||
s32 func_80131F38(void);
|
||||
s16 func_80131F94(void);
|
||||
s32 func_80133940(void);
|
||||
s32 func_80133950(void);
|
||||
|
||||
#endif
|
33
include/include_asm.h
Normal file
33
include/include_asm.h
Normal file
@ -0,0 +1,33 @@
|
||||
#ifndef INCLUDE_ASM_H
|
||||
#define INCLUDE_ASM_H
|
||||
|
||||
#define STRINGIFY_(x) #x
|
||||
#define STRINGIFY(x) STRINGIFY_(x)
|
||||
|
||||
#ifndef PERMUTER
|
||||
|
||||
#ifndef INCLUDE_ASM
|
||||
|
||||
#define INCLUDE_ASM(FOLDER, NAME) \
|
||||
__asm__( \
|
||||
".section .text\n" \
|
||||
"\t.align\t2\n" \
|
||||
"\t.globl\t"#NAME"\n" \
|
||||
"\t.ent\t"#NAME"\n" \
|
||||
#NAME ":\n" \
|
||||
".include \""FOLDER"/"#NAME".s\"\n" \
|
||||
"\t.set reorder\n" \
|
||||
"\t.set at\n" \
|
||||
"\t.end\t"#NAME \
|
||||
);
|
||||
#endif
|
||||
|
||||
// omit .global
|
||||
__asm__(".include \"include/include_asm.inc\"\n");
|
||||
|
||||
#else
|
||||
#define INCLUDE_ASM(FOLDER, NAME)
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
6
include/include_asm.inc
Normal file
6
include/include_asm.inc
Normal file
@ -0,0 +1,6 @@
|
||||
.macro glabel label
|
||||
\label:
|
||||
.endm
|
||||
|
||||
.macro .def #
|
||||
.endm
|
4
include/macro.inc
Normal file
4
include/macro.inc
Normal file
@ -0,0 +1,4 @@
|
||||
.macro glabel label
|
||||
.global \label
|
||||
\label:
|
||||
.endm
|
9
include/main.h
Normal file
9
include/main.h
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef MAIN_H
|
||||
#define MAIN_H
|
||||
|
||||
extern unsigned char func_80019424();
|
||||
extern unsigned char func_80019434();
|
||||
extern unsigned char func_80019444();
|
||||
extern void func_80021F6C(s16, s16);
|
||||
|
||||
#endif
|
23
include/main.inc
Normal file
23
include/main.inc
Normal file
@ -0,0 +1,23 @@
|
||||
.include "macro.inc"
|
||||
.set noat
|
||||
.set noreorder
|
||||
.align 4
|
||||
.section .text
|
||||
|
||||
.macro syscalldef label Sect Func
|
||||
.global \label
|
||||
\label:
|
||||
addiu $t2, $zero, \Sect
|
||||
jr $t2
|
||||
addiu $t1, $zero, \Func
|
||||
nop
|
||||
.endm
|
||||
|
||||
.macro exceptiondef label Func
|
||||
.global \label
|
||||
\label:
|
||||
addiu $a0, $zero, \Func
|
||||
syscall
|
||||
jr $ra
|
||||
nop
|
||||
.endm
|
27
include/psxsdk/libapi.h
Normal file
27
include/psxsdk/libapi.h
Normal file
@ -0,0 +1,27 @@
|
||||
|
||||
extern void InitHeap (unsigned long *, unsigned long);
|
||||
extern long Load(char *, struct EXEC *);
|
||||
extern long Exec(struct EXEC *, long, char **);
|
||||
// GPU_cw
|
||||
extern void _bu_init(void);
|
||||
extern long open(char *, unsigned long);
|
||||
extern long lseek(long, long, long);
|
||||
extern long read(long, void *, long);
|
||||
extern long write(long, void *, long);
|
||||
extern long close(long);
|
||||
extern long format(char *);
|
||||
extern struct DIRENTRY * firstfile(char *, struct DIRENTRY *);
|
||||
extern struct DIRENTRY * nextfile(struct DIRENTRY *);
|
||||
extern long erase(char *);
|
||||
extern long Krom2RawAdd(unsigned long);
|
||||
extern void ChangeClearPAD(long);
|
||||
extern void StopPAD(void);
|
||||
// PAD_init2
|
||||
// PAD_dr
|
||||
extern void FlushCache(void);
|
||||
extern void DeliverEvent(unsigned long, unsigned long);
|
||||
extern long TestEvent(long);
|
||||
extern long OpenEvent(unsigned long,long,long,long (*func)());
|
||||
extern long EnableEvent(long);
|
||||
// ChangeClearRCnt
|
||||
extern void _96_remove(void);
|
13
include/psxsdk/libc.h
Normal file
13
include/psxsdk/libc.h
Normal file
@ -0,0 +1,13 @@
|
||||
extern void exit();
|
||||
extern void puts(char *);
|
||||
// setjmp
|
||||
extern char *strcat (char *, char *);
|
||||
extern char *strcpy (char *, char *);
|
||||
extern int strlen (char *);
|
||||
extern void *memcpy (unsigned char *, unsigned char *, int);
|
||||
extern void *memset (unsigned char *, unsigned char, int);
|
||||
extern int rand(void);
|
||||
extern void srand(unsigned int);
|
||||
extern void *malloc(size_t);
|
||||
extern void free(void *);
|
||||
int printf(char *, ...)
|
7
include/psxsdk/libcard.h
Normal file
7
include/psxsdk/libcard.h
Normal file
@ -0,0 +1,7 @@
|
||||
// _card_info
|
||||
// _card_load
|
||||
extern void InitCARD(long val);
|
||||
extern long StartCARD(void);
|
||||
// _card_clear
|
||||
// _card_write
|
||||
// _new_card
|
24
include/types.h
Normal file
24
include/types.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef TYPES_H
|
||||
#define TYPES_H
|
||||
|
||||
typedef char int8_t;
|
||||
typedef short int16_t;
|
||||
typedef int int32_t;
|
||||
typedef long long int64_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned long long uint64_t;
|
||||
|
||||
typedef signed char s8;
|
||||
typedef signed short s16;
|
||||
typedef signed int s32;
|
||||
typedef signed long long s64;
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned short u16;
|
||||
typedef unsigned int u32;
|
||||
typedef unsigned long long u64;
|
||||
typedef float f32;
|
||||
typedef double f64;
|
||||
|
||||
#endif
|
1
main.sha
Normal file
1
main.sha
Normal file
@ -0,0 +1 @@
|
||||
54828d4e44ea9575f2a0917ff63def42a304abff build/main.exe
|
1301
src/dra/42398.c
Normal file
1301
src/dra/42398.c
Normal file
File diff suppressed because it is too large
Load Diff
3
src/main/psxsdk/fprintf.c
Normal file
3
src/main/psxsdk/fprintf.c
Normal file
@ -0,0 +1,3 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM("asm/main/nonmatchings/psxsdk/fprintf", fprintf);
|
17
src/main/psxsdk/libapi.c
Normal file
17
src/main/psxsdk/libapi.c
Normal file
@ -0,0 +1,17 @@
|
||||
#include "common.h"
|
||||
#include "main.h"
|
||||
|
||||
unsigned char func_80019424()
|
||||
{
|
||||
return *(unsigned char*)0x80032AB4;
|
||||
}
|
||||
|
||||
unsigned char func_80019434()
|
||||
{
|
||||
return *(unsigned char*)0x80032AC4;
|
||||
}
|
||||
|
||||
unsigned char func_80019444()
|
||||
{
|
||||
return *(unsigned char*)0x80032AC5;
|
||||
}
|
7
src/main/psxsdk/libetc.c
Normal file
7
src/main/psxsdk/libetc.c
Normal file
@ -0,0 +1,7 @@
|
||||
#include "common.h"
|
||||
|
||||
extern u16* g_InterruptMask;
|
||||
|
||||
u16 GetIntrMask(void) {
|
||||
return *g_InterruptMask;
|
||||
}
|
1
tools/asm-differ
Submodule
1
tools/asm-differ
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 89df9d720d996267095edab0f17dc7026744e83e
|
1
tools/n64splat
Submodule
1
tools/n64splat
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit dd1700bb7a69be5faf4b37f80cb80fc4efb131fe
|
Loading…
Reference in New Issue
Block a user