2023-05-06 11:24:32 +00:00
|
|
|
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;
|
|
|
|
LoadTPage = 0x8001112C;
|
|
|
|
LoadClut2 = 0x80011218;
|
|
|
|
SetDefDrawEnv = 0x80011280;
|
|
|
|
SetDefDispEnv = 0x80011310;
|
|
|
|
SetDumpFnt = 0x8001134C;
|
|
|
|
FntLoad = 0x8001138C;
|
|
|
|
FntOpen = 0x80011430;
|
|
|
|
FntFlush = 0x800116FC;
|
|
|
|
FntPrint = 0x8001195C;
|
|
|
|
GetTPage = 0x80011D54;
|
|
|
|
GetClut = 0x80011DEC;
|
|
|
|
DumpTPage = 0x80011E04;
|
|
|
|
DumpClut = 0x80011EA0;
|
|
|
|
NextPrim = 0x80011EE0;
|
|
|
|
IsEndPrim = 0x80011EFC;
|
|
|
|
AddPrim = 0x80011F18;
|
|
|
|
AddPrims = 0x80011F54;
|
|
|
|
CatPrim = 0x80011F90;
|
|
|
|
TermPrim = 0x80011FB4;
|
|
|
|
SetSemiTrans = 0x80011FCC;
|
|
|
|
SetShadeTex = 0x80011FF4;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
SetPolyF3 = 0x8001201C;
|
|
|
|
SetPolyFT3 = 0x80012030;
|
|
|
|
SetPolyG3 = 0x80012044;
|
2023-05-06 11:24:32 +00:00
|
|
|
SetPolyGT3 = 0x80012058;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
SetPolyF4 = 0x8001206C;
|
|
|
|
SetPolyFT4 = 0x80012080;
|
2023-05-06 11:24:32 +00:00
|
|
|
SetPolyG4 = 0x80012094;
|
|
|
|
SetPolyGT4 = 0x800120A8;
|
|
|
|
SetSprt8 = 0x800120BC;
|
|
|
|
SetSprt16 = 0x800120D0;
|
|
|
|
SetSprt = 0x800120E4;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
SetTile1 = 0x800120F8;
|
|
|
|
SetTile8 = 0x8001210C;
|
|
|
|
SetTile16 = 0x80012120;
|
2023-05-06 11:24:32 +00:00
|
|
|
SetTile = 0x80012134;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
SetBlockFill = 0x80012148;
|
|
|
|
SetLineF2 = 0x8001215C;
|
2023-05-06 11:24:32 +00:00
|
|
|
SetLineG2 = 0x80012170;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
SetLineF3 = 0x80012184;
|
|
|
|
SetLineG3 = 0x800121A4;
|
|
|
|
SetLineF4 = 0x800121C4;
|
|
|
|
SetLineG4 = 0x800121E4;
|
|
|
|
MargePrim = 0x80012204;
|
|
|
|
DumpDrawEnv = 0x80012238;
|
|
|
|
DumpDispEnv = 0x80012388;
|
2023-05-06 11:24:32 +00:00
|
|
|
ResetGraph = 0x80012434;
|
|
|
|
SetGraphReverse = 0x80012604;
|
|
|
|
SetGraphDebug = 0x80012714;
|
|
|
|
SetGraphQueue = 0x8001277C;
|
|
|
|
GetGraphType = 0x80012818;
|
|
|
|
GetGraphDebug = 0x80012828;
|
|
|
|
DrawSyncCallback = 0x80012838;
|
|
|
|
SetDispMask = 0x80012894;
|
|
|
|
DrawSync = 0x8001290C;
|
|
|
|
checkRECT = 0x80012978;
|
|
|
|
ClearImage = 0x80012A90;
|
|
|
|
LoadImage = 0x80012B24;
|
|
|
|
StoreImage = 0x80012B88;
|
|
|
|
MoveImage = 0x80012BEC;
|
|
|
|
ClearOTag = 0x80012C90;
|
|
|
|
ClearOTagR = 0x80012D3C;
|
|
|
|
DrawOTag = 0x80012E1C;
|
|
|
|
PutDrawEnv = 0x80012E8C;
|
|
|
|
PutDispEnv = 0x80012FE4;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
GetDispEnv = 0x8001342C;
|
|
|
|
GetODE = 0x80013490;
|
|
|
|
SetTexWindow = 0x800134C4;
|
2023-05-06 11:24:32 +00:00
|
|
|
SetDrawArea = 0x80013500;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
SetDrawOffset = 0x80013584;
|
|
|
|
SetPriority = 0x800135C8;
|
2023-05-06 11:24:32 +00:00
|
|
|
SetDrawMode = 0x800135F0;
|
|
|
|
SetDrawEnv = 0x80013648;
|
|
|
|
get_mode = 0x80013900;
|
|
|
|
get_cs = 0x80013950;
|
|
|
|
get_ce = 0x80013A1C;
|
|
|
|
get_ofs = 0x80013AE8;
|
|
|
|
get_tw = 0x80013B24;
|
|
|
|
get_dx = 0x80013BA8;
|
|
|
|
_status = 0x80013C80;
|
|
|
|
_otc = 0x80013C98;
|
|
|
|
_clr = 0x80013D80;
|
|
|
|
_dws = 0x80013FCC;
|
|
|
|
_drs = 0x80014258;
|
|
|
|
_ctl = 0x80014528;
|
|
|
|
_getctl = 0x80014560;
|
|
|
|
_cwb = 0x80014580;
|
|
|
|
_cwc = 0x800145D0;
|
|
|
|
_param = 0x8001461C;
|
|
|
|
_addque = 0x8001464C;
|
|
|
|
_addque2 = 0x80014670;
|
|
|
|
_exeque = 0x800148D8;
|
|
|
|
_reset = 0x80014BD8;
|
|
|
|
_sync = 0x80014D54;
|
|
|
|
set_alarm = 0x80014F40;
|
|
|
|
get_alarm = 0x80014F74;
|
|
|
|
GPU_memset = 0x8001510C;
|
|
|
|
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;
|
|
|
|
PadInit = 0x80015238;
|
|
|
|
PadRead = 0x80015288;
|
|
|
|
PadStop = 0x800152B8;
|
|
|
|
StopPAD = 0x800152D8;
|
|
|
|
PAD_init = 0x800152E8;
|
|
|
|
PAD_dr = 0x800152F8;
|
|
|
|
VSync = 0x80015308;
|
|
|
|
v_wait = 0x80015450;
|
|
|
|
ChangeClearRCnt = 0x800154EC;
|
|
|
|
ResetCallback = 0x800154FC;
|
|
|
|
InterruptCallback = 0x8001552C;
|
|
|
|
DMACallback = 0x8001555C;
|
|
|
|
VSyncCallback = 0x8001558C;
|
|
|
|
VSyncCallbacks = 0x800155C0;
|
|
|
|
StopCallback = 0x800155F0;
|
|
|
|
RestartCallback = 0x80015620;
|
|
|
|
CheckCallback = 0x80015650;
|
|
|
|
GetIntrMask = 0x80015660;
|
|
|
|
SetIntrMask = 0x80015678;
|
|
|
|
startIntr = 0x80015694;
|
|
|
|
trapIntr = 0x80015770;
|
|
|
|
setIntr = 0x80015958;
|
|
|
|
stopIntr = 0x80015AAC;
|
|
|
|
restartIntr = 0x80015B58;
|
|
|
|
memclr = 0x80015BE0;
|
|
|
|
_96_remove = 0x80015C0C;
|
|
|
|
ReturnFromException = 0x80015C1C;
|
|
|
|
ResetEntryInt = 0x80015C2C;
|
|
|
|
HookEntryInt = 0x80015C3C;
|
|
|
|
EnterCriticalSection = 0x80015C4C;
|
|
|
|
ExitCriticalSection = 0x80015C5C;
|
|
|
|
startIntrVSync = 0x80015C6C;
|
|
|
|
trapIntrVSync = 0x80015CC4;
|
|
|
|
setIntrVSync = 0x80015D3C;
|
|
|
|
VSync_memclr = 0x80015D68;
|
|
|
|
startIntrDMA = 0x80015D94;
|
|
|
|
trapIntrDMA = 0x80015DE4;
|
|
|
|
setIntrDMA = 0x80015F68;
|
|
|
|
DMA_memclr = 0x80016010;
|
|
|
|
SetVideoMode = 0x8001603C;
|
|
|
|
GetVideoMode = 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;
|
|
|
|
sprintf = 0x80016134;
|
|
|
|
memchr = 0x80016990;
|
|
|
|
memmove = 0x800169A0;
|
|
|
|
_card_info = 0x80016A0C;
|
|
|
|
_card_load = 0x80016A1C;
|
|
|
|
InitCARD = 0x80016A2C;
|
|
|
|
StartCARD = 0x80016A3C;
|
|
|
|
_card_clear = 0x80016A4C;
|
|
|
|
_card_write = 0x80016A84;
|
|
|
|
_new_card = 0x80016A94;
|
|
|
|
GsInitVcount = 0x80016AA4;
|
|
|
|
SetRCnt = 0x80016ADC;
|
|
|
|
GetRCnt = 0x80016B7C;
|
|
|
|
StartRCnt = 0x80016BB4;
|
|
|
|
StopRCnt = 0x80016BE8;
|
|
|
|
ResetRCnt = 0x80016C1C;
|
|
|
|
GsGetVcount = 0x80016C54;
|
|
|
|
GsClearVcount = 0x80016C78;
|
|
|
|
rsin = 0x80016C9C;
|
|
|
|
sin_1 = 0x80016CD8;
|
|
|
|
rcos = 0x80016D68;
|
|
|
|
SetFogNear = 0x80016E08;
|
|
|
|
InitGeom = 0x80016E6C;
|
|
|
|
SquareRoot0 = 0x80016EEC;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
InvSquareRoot = 0x80016F7C;
|
|
|
|
MatrixNormal = 0x80017134;
|
2023-05-06 11:24:32 +00:00
|
|
|
SquareRoot12 = 0x8001721C;
|
|
|
|
CompMatrix = 0x800172BC;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
MulMatrix0 = 0x8001741C;
|
|
|
|
MulRotMatrix0 = 0x80017528;
|
|
|
|
MulRotMatrix = 0x8001760C;
|
2023-05-06 11:24:32 +00:00
|
|
|
SetMulMatrix = 0x800176F4;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
ApplyMatrixLV = 0x80017804;
|
|
|
|
ApplyRotMatrix = 0x80017964;
|
|
|
|
ScaleMatrixL = 0x80017994;
|
2023-05-06 11:24:32 +00:00
|
|
|
PushMatrix = 0x80017AB8;
|
|
|
|
PopMatrix = 0x80017B58;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
ReadRotMatrix = 0x80017BF8;
|
|
|
|
ReadLightMatrix = 0x80017C40;
|
2023-05-06 11:24:32 +00:00
|
|
|
ReadColorMatrix = 0x80017C88;
|
|
|
|
TransMatrix = 0x80017CDC;
|
|
|
|
ScaleMatrix = 0x80017D0C;
|
|
|
|
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;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
NormalClipS = 0x80018320;
|
2023-05-06 11:24:32 +00:00
|
|
|
RotTransPers4 = 0x8001833C;
|
|
|
|
RotAverage3 = 0x800183BC;
|
|
|
|
RotAverage4 = 0x8001841C;
|
|
|
|
RotAverageNclip3 = 0x8001849C;
|
|
|
|
RotAverageNclip4 = 0x8001852C;
|
|
|
|
RotAverageNclipColorCol3 = 0x800185DC;
|
|
|
|
RotMatrix = 0x800186AC;
|
|
|
|
RotMatrixYXZ = 0x8001893C;
|
|
|
|
RotMatrixX = 0x80018BCC;
|
|
|
|
RotMatrixY = 0x80018D6C;
|
|
|
|
RotMatrixZ = 0x80018F0C;
|
|
|
|
ratan2 = 0x800190AC;
|
|
|
|
patch_gte = 0x8001922C;
|
|
|
|
FlushCache = 0x800192CC;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
StSetRing = 0x800192DC;
|
2023-05-06 11:24:32 +00:00
|
|
|
CdInit = 0x8001930C;
|
|
|
|
def_cbsync = 0x8001939C;
|
|
|
|
def_cbready = 0x800193C4;
|
|
|
|
def_cbread = 0x800193EC;
|
|
|
|
DeliverEvent = 0x80019414;
|
|
|
|
CdStatus = 0x80019424;
|
|
|
|
CdMode = 0x80019434;
|
2023-05-13 19:35:35 +00:00
|
|
|
CdLastCom = 0x80019444;
|
2023-05-06 11:24:32 +00:00
|
|
|
CdLastPos = 0x80019454;
|
|
|
|
CdReset = 0x80019464;
|
|
|
|
CdFlush = 0x800194D0;
|
2023-09-09 22:56:17 +00:00
|
|
|
CdSetDebug = 0x800194F0;
|
|
|
|
CdComstr = 0x80019508;
|
|
|
|
CdIntstr = 0x8001953C;
|
2023-05-06 11:24:32 +00:00
|
|
|
CdSync = 0x80019570;
|
|
|
|
CdReady = 0x80019590;
|
|
|
|
CdSyncCallback = 0x800195B0;
|
|
|
|
CdReadyCallback = 0x800195C8;
|
|
|
|
CdControl = 0x800195E0;
|
|
|
|
CdControlF = 0x80019718;
|
|
|
|
CdControlB = 0x80019844;
|
|
|
|
CdMix = 0x80019988;
|
|
|
|
CdGetSector = 0x800199AC;
|
|
|
|
CdDataCallback = 0x800199D0;
|
2023-09-09 22:56:17 +00:00
|
|
|
CdDataSync = 0x800199F4;
|
2023-05-06 11:24:32 +00:00
|
|
|
CdIntToPos = 0x80019A14;
|
|
|
|
CdPosToInt = 0x80019B18;
|
|
|
|
getintr = 0x80019B98;
|
|
|
|
CD_sync = 0x8001A110;
|
|
|
|
CD_ready = 0x8001A390;
|
|
|
|
CD_cw = 0x8001A65C;
|
|
|
|
CD_vol = 0x8001AAA4;
|
|
|
|
CD_flush = 0x8001AB2C;
|
|
|
|
CD_initvol = 0x8001AC0C;
|
|
|
|
CD_initintr = 0x8001AD00;
|
|
|
|
CD_init = 0x8001AD50;
|
|
|
|
CD_datasync = 0x8001AF3C;
|
|
|
|
CD_getsector = 0x8001B0A8;
|
2023-09-09 22:56:17 +00:00
|
|
|
CD_set_test_parmnum = 0x8001B1A8;
|
2023-05-06 11:24:32 +00:00
|
|
|
callback = 0x8001B1B8;
|
|
|
|
CdSearchFile = 0x8001B298;
|
2023-09-09 22:56:17 +00:00
|
|
|
_cmp = 0x8001B578;
|
2023-05-06 11:24:32 +00:00
|
|
|
CD_newmedia = 0x8001B59C;
|
|
|
|
CD_searchdir = 0x8001B878;
|
|
|
|
CD_cachefile = 0x8001B920;
|
|
|
|
cd_read = 0x8001BBC4;
|
|
|
|
cd_memcpy = 0x8001BC30;
|
|
|
|
strcmp = 0x8001BC64;
|
|
|
|
strncmp = 0x8001BC74;
|
|
|
|
cb_read = 0x8001BC84;
|
|
|
|
cd_read_retry = 0x8001BEA8;
|
|
|
|
CdRead = 0x8001C080;
|
|
|
|
CdReadSync = 0x8001C188;
|
|
|
|
CdReadCallback = 0x8001C254;
|
|
|
|
CdRead2 = 0x8001C26C;
|
2023-09-09 22:56:17 +00:00
|
|
|
StCdInterrupt2 = 0x8001C300;
|
2023-05-06 11:24:32 +00:00
|
|
|
StClearRing = 0x8001C320;
|
2023-09-09 22:56:17 +00:00
|
|
|
StUnSetRing = 0x8001C380;
|
|
|
|
data_ready_callback = 0x8001C3D8;
|
|
|
|
StGetBackloc = 0x8001C468;
|
2023-05-06 11:24:32 +00:00
|
|
|
StSetStream = 0x8001C4C8;
|
2023-09-09 22:56:17 +00:00
|
|
|
StFreeRing = 0x8001C550;
|
|
|
|
init_ring_status = 0x8001C60C;
|
|
|
|
StGetNext = 0x8001C64C;
|
|
|
|
StSetMask = 0x8001C710;
|
2023-08-02 03:46:21 +00:00
|
|
|
StCdInterrupt = 0x8001C730;
|
2023-05-06 11:24:32 +00:00
|
|
|
mem2mem = 0x8001D0A0;
|
|
|
|
dma_execute = 0x8001D0D4;
|
|
|
|
SsSetMVol = 0x8001D290;
|
|
|
|
SsSetSerialAttr = 0x8001D2E0;
|
|
|
|
SsSetSerialVol = 0x8001D374;
|
|
|
|
_SsInitSoundSeq = 0x8001D470;
|
2023-08-02 03:46:21 +00:00
|
|
|
SsSeqOpen = 0x8001D798;
|
2023-05-06 11:24:32 +00:00
|
|
|
_SsSeqPlay = 0x8001D864;
|
|
|
|
_SsGetSeqData = 0x8001D974;
|
|
|
|
_SsNoteOn = 0x8001DC20;
|
|
|
|
_SsSetProgramChange = 0x8001DD10;
|
|
|
|
_SsSetControlChange = 0x8001DD88;
|
2023-08-02 03:46:21 +00:00
|
|
|
_SsContModulation = 0x8001E0A0;
|
|
|
|
_SsContPortaTime = 0x8001E1D8;
|
2023-05-06 11:24:32 +00:00
|
|
|
_SsContPortamento = 0x8001E310;
|
|
|
|
_SsContResetAll = 0x8001E474;
|
|
|
|
_SsContNrpn1 = 0x8001E53C;
|
|
|
|
_SsContNrpn2 = 0x8001E66C;
|
|
|
|
_SsContRpn1 = 0x8001E7B0;
|
|
|
|
_SsContRpn2 = 0x8001E828;
|
|
|
|
_SsContDataEntry = 0x8001E8A0;
|
|
|
|
_SsSndSetVabAttr = 0x8001EE40;
|
|
|
|
_SsSetPitchBend = 0x8001F104;
|
|
|
|
_SsGetMetaEvent = 0x8001F1B0;
|
|
|
|
_SsReadDeltaValue = 0x8001F504;
|
|
|
|
_SsUtResolveADSR = 0x8001F5BC;
|
|
|
|
_SsUtBuildADSR = 0x8001F618;
|
|
|
|
_SsSndNextSep = 0x8001F6A4;
|
|
|
|
SsVoKeyOff = 0x8001F7AC;
|
|
|
|
SsVoKeyOn = 0x8001F7E8;
|
2023-08-02 03:46:21 +00:00
|
|
|
SsSeqCalledTbyT = 0x8001F834;
|
2023-05-06 11:24:32 +00:00
|
|
|
_SsSndCrescendo = 0x8001FAA8;
|
|
|
|
_SsSndDecrescendo = 0x8001FD84;
|
|
|
|
_SsSndPause = 0x80020030;
|
|
|
|
_SsSndPlay = 0x800200D0;
|
|
|
|
_SsSndReplay = 0x800200FC;
|
|
|
|
_SsClose = 0x80020164;
|
|
|
|
SsSeqClose = 0x800202E0;
|
2023-08-02 03:46:21 +00:00
|
|
|
SsSepClose = 0x80020304;
|
2023-05-06 11:24:32 +00:00
|
|
|
_SsInit = 0x80020328;
|
|
|
|
SsInitHot = 0x80020410;
|
|
|
|
SsQuit = 0x80020440;
|
|
|
|
_SsStart = 0x80020460;
|
|
|
|
SsStart = 0x800206C8;
|
2023-08-02 03:46:21 +00:00
|
|
|
SsStart2 = 0x800206E8;
|
|
|
|
_SsTrapIntrVSync = 0x80020708;
|
|
|
|
_SsSeqCalledTbyT_1per2 = 0x80020748;
|
2023-05-06 11:24:32 +00:00
|
|
|
SsSetTickMode = 0x80020798;
|
2023-08-02 03:46:21 +00:00
|
|
|
SsEnd = 0x80020904;
|
|
|
|
SsSetTableSize = 0x800209B4;
|
|
|
|
Snd_SetPlayMode = 0x80020B94;
|
|
|
|
SsSeqPlay = 0x80020C94;
|
|
|
|
SsSepPlay = 0x80020CCC;
|
|
|
|
_SsSndSetVol = 0x80020D04;
|
|
|
|
SsSeqSetVol = 0x80020D3C;
|
|
|
|
SsSepSetVol = 0x80020D6C;
|
|
|
|
SsSeqGetVol = 0x80020DA4;
|
|
|
|
_SsSndStop = 0x80020DD8;
|
|
|
|
SsSeqStop = 0x80020F44;
|
|
|
|
SsSepStop = 0x80020F6C;
|
|
|
|
_SsSndTempo = 0x80020F98;
|
|
|
|
SsSetMono = 0x80021174;
|
|
|
|
SsSetStereo = 0x80021188;
|
2023-05-06 11:24:32 +00:00
|
|
|
SsSetReservedVoice = 0x80021198;
|
|
|
|
SsVabClose = 0x800211D0;
|
2023-08-02 03:46:21 +00:00
|
|
|
SsVabOpen = 0x80021254;
|
2023-05-06 11:24:32 +00:00
|
|
|
SsVabFakeBody = 0x800212AC;
|
2023-08-02 03:46:21 +00:00
|
|
|
SsVabOpenHead = 0x8002131C;
|
|
|
|
SsVabOpenHeadSticky = 0x80021350;
|
|
|
|
SsVabFakeHead = 0x80021384;
|
|
|
|
SsVabOpenHeadWithMode = 0x800213B8;
|
|
|
|
SsVabTransBody = 0x800217C0;
|
|
|
|
SsVabTransBodyPartly = 0x80021880;
|
|
|
|
SsVabTransCompleted = 0x800219E0;
|
|
|
|
SpuVmDamperOff = 0x80021A0C;
|
|
|
|
SpuVmDamperOn = 0x80021A1C;
|
2023-05-06 11:24:32 +00:00
|
|
|
SsUtGetProgAtr = 0x80021A30;
|
|
|
|
SpuVmVSetUp = 0x80021B38;
|
|
|
|
SsUtGetVagAtr = 0x80021BFC;
|
2023-08-02 03:46:21 +00:00
|
|
|
SsUtSetReverbType = 0x80021E38;
|
|
|
|
SsUtGetReverbType = 0x80021EDC;
|
|
|
|
SsUtReverbOn = 0x80021EEC;
|
|
|
|
SsUtSetReverbFeedback = 0x80021F2C;
|
|
|
|
SsUtSetReverbDepth = 0x80021F6C;
|
|
|
|
SsUtSetReverbDelay = 0x80022004;
|
|
|
|
SsUtSetVagAtr = 0x80022044;
|
2023-05-06 11:24:32 +00:00
|
|
|
SpuVmAlloc = 0x8002220C;
|
|
|
|
SpuVmKeyOnNow = 0x80022474;
|
2023-08-02 03:46:21 +00:00
|
|
|
SpuVmDoAllocate = 0x80022958;
|
|
|
|
vmNoiseOn = 0x80022B6C;
|
|
|
|
vmNoiseOn2 = 0x8002303C;
|
|
|
|
note2pitch = 0x800231D8;
|
|
|
|
note2pitch2 = 0x80023290;
|
|
|
|
SePitchBend = 0x8002338C;
|
|
|
|
SsUtVibrateOn = 0x80023530;
|
|
|
|
SsUtVibrateOff = 0x80023538;
|
|
|
|
SeAutoVol = 0x80023540;
|
2023-05-06 11:24:32 +00:00
|
|
|
SetAutoVol = 0x800236F0;
|
2023-08-02 03:46:21 +00:00
|
|
|
SeAutoPan = 0x80023A40;
|
|
|
|
SetAutoPan = 0x80023BF0;
|
2023-05-06 11:24:32 +00:00
|
|
|
SpuVmInit = 0x80023F34;
|
2023-08-02 03:46:21 +00:00
|
|
|
SpuVmNoiseOnWithAdsr = 0x80024304;
|
|
|
|
SpuVmNoiseOff = 0x8002439C;
|
|
|
|
SpuVmNoiseOn = 0x80024454;
|
|
|
|
SpuVmPBVoice = 0x800244D4;
|
|
|
|
SpuVmPitchBend = 0x800246D8;
|
2023-05-06 11:24:32 +00:00
|
|
|
SpuVmFlush = 0x800247C8;
|
|
|
|
SpuVmKeyOn = 0x80024B74;
|
|
|
|
SpuVmKeyOff = 0x80025164;
|
2023-08-02 03:46:21 +00:00
|
|
|
SpuVmSeKeyOn = 0x80025354;
|
2023-05-06 11:24:32 +00:00
|
|
|
SpuVmSeKeyOff = 0x80025440;
|
2023-08-02 03:46:21 +00:00
|
|
|
KeyOnCheck = 0x80025474;
|
|
|
|
SpuVmSetSeqVol = 0x8002547C;
|
|
|
|
SpuVmGetSeqVol = 0x800255F0;
|
|
|
|
SpuVmGetSeqLVol = 0x8002565C;
|
|
|
|
SpuVmGetSeqRVol = 0x800256AC;
|
|
|
|
SpuVmSeqKeyOff = 0x800256FC;
|
|
|
|
SpuVmSetProgVol = 0x80025840;
|
|
|
|
SpuVmGetProgVol = 0x800258B4;
|
|
|
|
SpuVmSetProgPan = 0x80025908;
|
|
|
|
SpuVmGetProgPan = 0x8002597C;
|
|
|
|
SpuVmSetVol = 0x800259D0;
|
|
|
|
SsUtKeyOn = 0x80025F08;
|
|
|
|
SsUtKeyOff = 0x800262AC;
|
2023-05-06 11:24:32 +00:00
|
|
|
SsUtKeyOnV = 0x800264A0;
|
2023-08-02 03:46:21 +00:00
|
|
|
SsUtKeyOffV = 0x8002683C;
|
2023-05-06 11:24:32 +00:00
|
|
|
SsUtPitchBend = 0x80026954;
|
2023-08-02 03:46:21 +00:00
|
|
|
SsUtChangePitch = 0x800269E4;
|
|
|
|
SsUtChangeADSR = 0x80026B24;
|
|
|
|
SsUtGetDetVVol = 0x80026BFC;
|
|
|
|
SsUtSetDetVVol = 0x80026C54;
|
|
|
|
SsUtGetVVol = 0x80026CC0;
|
|
|
|
SsUtSetVVol = 0x80026D4C;
|
|
|
|
SsUtAutoVol = 0x80026DD8;
|
|
|
|
SsUtAutoPan = 0x80026E2C;
|
|
|
|
SsUtAllKeyOff = 0x80026E80;
|
2023-05-06 11:24:32 +00:00
|
|
|
SpuInit = 0x8002705C;
|
|
|
|
_SpuInit = 0x8002707C;
|
2023-08-02 03:46:21 +00:00
|
|
|
SpuStart = 0x80027144;
|
2023-05-06 11:24:32 +00:00
|
|
|
OpenEvent = 0x800271C8;
|
|
|
|
EnableEvent = 0x800271D8;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
_spu_reset = 0x800271E8;
|
2023-05-06 11:24:32 +00:00
|
|
|
_spu_init = 0x80027274;
|
|
|
|
_spu_writeByIO = 0x80027790;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
_spu_FiDMA = 0x80027AC4;
|
|
|
|
_spu_r_ = 0x80027C64;
|
|
|
|
_spu_t = 0x80027E44;
|
|
|
|
_spu_write = 0x800280EC;
|
|
|
|
_spu_read = 0x80028174;
|
|
|
|
_spu_FsetRXX = 0x800281DC;
|
|
|
|
_spu_FsetRXXa = 0x80028224;
|
|
|
|
_spu_FgetRXXa = 0x800282C8;
|
2023-05-06 11:24:32 +00:00
|
|
|
_SpuDataCallback = 0x80028304;
|
|
|
|
SpuQuit = 0x80028328;
|
|
|
|
CloseEvent = 0x800283A4;
|
|
|
|
DisableEvent = 0x800283B4;
|
|
|
|
SpuInitMalloc = 0x800283C4;
|
|
|
|
SpuMalloc = 0x80028418;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
_SpuMallocSeparateTo3 = 0x800289E0;
|
|
|
|
SpuMallocWithStartAddr = 0x80028D3C;
|
|
|
|
SpuFree = 0x80028FF4;
|
2023-05-06 11:24:32 +00:00
|
|
|
SpuSetNoiseVoice = 0x80029070;
|
|
|
|
SpuSetAnyVoice = 0x80029094;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
SpuSetReverb = 0x80029148;
|
|
|
|
_SpuIsInAllocateArea = 0x80029218;
|
|
|
|
_SpuIsInAllocateArea_ = 0x80029288;
|
|
|
|
SpuSetReverbModeParam = 0x80029300;
|
2023-05-06 11:24:32 +00:00
|
|
|
_spu_setReverbAttr = 0x80029810;
|
|
|
|
SpuClearReverbWorkArea = 0x80029CE0;
|
|
|
|
WaitEvent = 0x80029E7C;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
SpuSetIRQ = 0x80029E8C;
|
|
|
|
SpuSetIRQCallback = 0x80029FBC;
|
|
|
|
_SpuCallback = 0x8002A000;
|
|
|
|
SpuSetKey = 0x8002A024;
|
|
|
|
SpuSetVoiceAttr = 0x8002A09C;
|
|
|
|
_SpuSetVoiceAttr = 0x8002A0C4;
|
|
|
|
SpuGetVoiceAttr = 0x8002A720;
|
|
|
|
SpuRead = 0x8002AAF8;
|
|
|
|
SpuWrite = 0x8002AB58;
|
|
|
|
SpuSetTransferStartAddr = 0x8002ABB8;
|
|
|
|
SpuSetTransferMode = 0x8002ABF4;
|
|
|
|
SpuWritePartly = 0x8002AC28;
|
|
|
|
SpuIsTransferCompleted = 0x8002ACB4;
|
2023-05-06 11:24:32 +00:00
|
|
|
TestEvent = 0x8002AD5C;
|
|
|
|
_spu_setInTransfer = 0x8002AD6C;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
_spu_getInTransfer = 0x8002AD98;
|
2023-09-09 20:09:46 +00:00
|
|
|
SpuSetCommonAttr = 0x8002ADA8;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
_spu_note2pitch = 0x8002B13C;
|
|
|
|
_spu_pitch2note = 0x8002B22C;
|
|
|
|
SpuRGetAllKeysStatus = 0x8002B388;
|
2023-07-31 22:03:43 +00:00
|
|
|
SpuGetAllKeysStatus = 0x8002B458;
|
2023-05-06 11:24:32 +00:00
|
|
|
Font = 0x8002B760;
|
|
|
|
GPU_printf = 0x8002C264;
|
|
|
|
_qin = 0x8002C2A0;
|
|
|
|
_qout = 0x8002C2A4;
|
|
|
|
Hcount = 0x8002C2B0;
|
|
|
|
g_InterruptMask = 0x8002D348;
|
|
|
|
Vcount = 0x8002D374;
|
|
|
|
rsin_tbl = 0x8002D3CC;
|
|
|
|
SQRT = 0x8002DBE0;
|
|
|
|
aThisFunctionIs = 0x8002E1EA;
|
|
|
|
rcossin_tbl = 0x8002E210;
|
2023-05-13 22:03:13 +00:00
|
|
|
g_AtanTable = 0x80032210;
|
2023-05-06 11:24:32 +00:00
|
|
|
CD_cbsync = 0x80032AA4;
|
|
|
|
CD_cbready = 0x80032AA8;
|
|
|
|
CD_status = 0x80032AB4;
|
|
|
|
CD_status1 = 0x80032AB8;
|
|
|
|
CD_nopen = 0x80032ABC;
|
|
|
|
CD_pos = 0x80032AC0;
|
|
|
|
CD_mode = 0x80032AC4;
|
|
|
|
CD_com = 0x80032AC5;
|
|
|
|
snd_seq_tick_env = 0x80032EF0;
|
|
|
|
_spu_EVdma = 0x800330F0;
|
|
|
|
_spu_isCalled = 0x800334F8;
|
|
|
|
_spu_tsa = 0x80033500;
|
|
|
|
_spu_RXX = 0x80033504;
|
|
|
|
_spu_transMode = 0x8003351C;
|
|
|
|
_spu_addrMode = 0x80033520;
|
|
|
|
_spu_mem_mode = 0x80033524;
|
|
|
|
_spu_mem_mode_plus = 0x80033528;
|
|
|
|
_spu_mem_mode_unit = 0x8003352C;
|
|
|
|
_spu_mem_mode_unitM = 0x80033530;
|
|
|
|
_spu_inTransfer = 0x80033534;
|
|
|
|
_spu_transferCallback = 0x80033538;
|
|
|
|
_spu_IRQCallback = 0x8003353C;
|
|
|
|
text_orgend = 0x800339E8;
|
|
|
|
tpage = 0x80037E18;
|
|
|
|
clut = 0x80037E1C;
|
|
|
|
ctlbuf = 0x80037ED0;
|
|
|
|
pad_buf = 0x8003925C;
|
|
|
|
Alarm = 0x80039278;
|
|
|
|
file = 0x80039284;
|
|
|
|
load_buf = 0x8003AE84;
|
|
|
|
fp_2 = 0x8003B684;
|
|
|
|
_svm_sreg_buf = 0x8003B690;
|
|
|
|
_svm_sreg_dirty = 0x8003B810;
|
|
|
|
_svm_voice = 0x8003B828;
|
|
|
|
_svm_envx_hist = 0x8003BD0C;
|
|
|
|
_svm_okon1 = 0x8003BDD8;
|
|
|
|
_svm_okon2 = 0x8003BDDC;
|
|
|
|
g_IsTimeAttackUnlocked = 0x8003BDE0;
|
|
|
|
_svm_orev1 = 0x8003BDE4;
|
|
|
|
_svm_orev2 = 0x8003BDE8;
|
2023-09-13 19:29:39 +00:00
|
|
|
g_CastleFlags = 0x8003BDEC;
|
|
|
|
g_CastleFlags_0x13 = 0x8003BDFF;
|
|
|
|
g_CastleFlags_0x30 = 0x8003BE1C;
|
|
|
|
g_CastleFlags_0x31 = 0x8003BE1D;
|
|
|
|
g_CastleFlags_0x32 = 0x8003BE1E;
|
|
|
|
g_CastleFlags_0x34 = 0x8003BE20;
|
|
|
|
g_CastleFlags_0x35 = 0x8003BE21;
|
|
|
|
g_CastleFlags_0x62 = 0x8003BE4E;
|
|
|
|
g_CastleFlags_0x63 = 0x8003BE4F;
|
2023-05-06 11:24:32 +00:00
|
|
|
D_8003C708_unk2 = 0x8003C70A;
|
|
|
|
D_8003C708_unk4 = 0x8003C70C;
|
|
|
|
D_8003C708_zPriority = 0x8003C70E;
|
2023-05-15 13:42:52 +00:00
|
|
|
g_GameState = 0x8003C734;
|
2023-05-06 11:24:32 +00:00
|
|
|
_svm_rattr = 0x8003C748;
|
2023-09-13 19:29:39 +00:00
|
|
|
g_RoomCount = 0x8003C760;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_api = 0x8003C774;
|
|
|
|
g_api_o_TestCollisions = 0x8003C778;
|
|
|
|
g_api_o_unk08 = 0x8003C77C;
|
|
|
|
g_api_o_InitRoomEntities = 0x8003C780;
|
|
|
|
g_api_o_rooms = 0x8003C784;
|
|
|
|
g_api_o_spriteBanks = 0x8003C788;
|
|
|
|
g_api_o_cluts = 0x8003C78C;
|
|
|
|
g_api_o_unk1C = 0x8003C790;
|
|
|
|
g_api_o_tileLayers = 0x8003C794;
|
|
|
|
g_api_o_entityGfxs = 0x8003C798;
|
|
|
|
g_api_o_unk28 = 0x8003C79C;
|
|
|
|
g_api_o_unk2c = 0x8003C7A0;
|
|
|
|
g_api_o_unk30 = 0x8003C7A4;
|
|
|
|
g_api_o_unk34 = 0x8003C7A8;
|
|
|
|
g_api_o_unk38 = 0x8003C7AC;
|
|
|
|
g_api_o_unk3C = 0x8003C7B0;
|
|
|
|
g_api_FreePrimitives = 0x8003C7B4;
|
|
|
|
g_api_AllocPrimitives = 0x8003C7B8;
|
|
|
|
g_api_CheckCollision = 0x8003C7BC;
|
|
|
|
g_api_func_80102CD8 = 0x8003C7C0;
|
|
|
|
g_api_UpdateAnim = 0x8003C7C4;
|
2023-07-21 22:19:21 +00:00
|
|
|
g_api_SetSpeedX = 0x8003C7C8;
|
2023-12-10 18:08:41 +00:00
|
|
|
g_api_GetFreeEntity = 0x8003C7CC;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_api_GetEquipProperties = 0x8003C7D0;
|
|
|
|
g_api_func_800EA5E4 = 0x8003C7D4;
|
2023-10-13 03:55:23 +00:00
|
|
|
g_api_LoadGfxAsync = 0x8003C7D8;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_api_PlaySfx = 0x8003C7DC;
|
|
|
|
g_api_func_800EDB58 = 0x8003C7E0;
|
|
|
|
g_api_func_800EA538 = 0x8003C7E4;
|
|
|
|
g_api_g_pfn_800EA5AC = 0x8003C7E8;
|
|
|
|
g_api_func_801027C4 = 0x8003C7EC;
|
|
|
|
g_api_func_800EB758 = 0x8003C7F0;
|
Split out data table for func_8011AC3C (#710)
`func_8011AC3C` appears to be a very important function when it comes to
spawning entities. From what I can tell, it seems to be responsible for
creating all of the entities listed in `asm/us/dra/data/CF4C.data.s`
from 800AD0C4 through 800AD1D0, which is the game's main entity updating
function lookup table.
When func_8011AC3C is called, it uses its `self.params` to index into a
table which contains spawning information for entities. For example, if
func_8011AC3C is called with `self.params` of 0x21, it will create a
child entity with entityID of 25, which is the entity for the Hellfire
spell (which I recently decompiled and will submit as a PR soon).
I think func_8011AC3C is going to be useful for understanding entity
spawning logic, so I have gone ahead and taken the data table that it
uses at D_800AD1D4, and created it as an asset which will now be
extracted by splat. This way, we can more directly view the data, rather
than just seeing it as a giant array of u8 values. I am hoping that
having this available as json will be helpful for understanding the
entity creation logic. Overall, this PR is meant as a stepping stone to
fully understanding func_8011AC3C and what it does to create the
entities that it creates.
Doing this has helped me understand one struct member's purpose, which
is to set the ID of the child entity, so I've added that to the struct,
both the entity extension for func_8011AC3C and the struct which this is
an array of, which for now is Unkstruct_800AD1D4.
2023-11-07 16:54:59 +00:00
|
|
|
g_api_CreateEntFactoryFromEntity = 0x8003C7F4;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_api_func_80131F68 = 0x8003C7F8;
|
|
|
|
g_api_func_800EDB08 = 0x8003C7FC;
|
|
|
|
g_api_func_80106A28 = 0x8003C800;
|
|
|
|
g_api_func_80118894 = 0x8003C804;
|
|
|
|
g_api_enemyDefs = 0x8003C808;
|
|
|
|
g_api_func_80118970 = 0x8003C80C;
|
|
|
|
g_api_func_80118B18 = 0x8003C810;
|
|
|
|
g_api_UpdateUnarmedAnim = 0x8003C814;
|
|
|
|
g_api_func_8010DBFC = 0x8003C818;
|
|
|
|
g_api_func_80118C28 = 0x8003C81C;
|
|
|
|
g_api_func_8010E168 = 0x8003C820;
|
|
|
|
g_api_func_8010DFF0 = 0x8003C824;
|
|
|
|
g_api_DealDamage = 0x8003C828;
|
|
|
|
g_api_LoadEquipIcon = 0x8003C82C;
|
2023-09-13 19:29:39 +00:00
|
|
|
g_api_equipDefs = 0x8003C830;
|
|
|
|
g_api_g_AccessoryDefs = 0x8003C834;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_api_AddHearts = 0x8003C838;
|
2023-11-08 01:41:53 +00:00
|
|
|
g_api_LoadMonsterLibrarianPreview = 0x8003C83C;
|
2023-07-31 19:36:35 +00:00
|
|
|
g_api_TimeAttackController = 0x8003C840;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_api_func_8010E0A8 = 0x8003C844;
|
|
|
|
g_api_func_800FE044 = 0x8003C848;
|
|
|
|
g_api_AddToInventory = 0x8003C84C;
|
2023-09-13 19:29:39 +00:00
|
|
|
g_api_relicDefs = 0x8003C850;
|
Decompile DRA func_800FF7B8 (#402)
This is a big one. This is the main function that runs to initialize the
player's stats and equipment. It takes into account the bonuses that the
player gets for Prologue completion (completing faster, or with certain
items, gives bonuses of stats and items). It also checks for the famous
X-X!V''Q and AXEARMOR savename codes. I therefore called it
InitStatsAndGear.
This function takes only one argument. In the real game, both calls to
this function have an argument of 0, but one of the first things in this
function is `if (arg0 == 1) {`. I therefore assume this is a debug
parameter, where developers could have called this with 1, in order to
do some sort of testing. I decided to call the argument debugMode.
I chose to call the two savename codes "c_strLuckModeCode" and
"c_strAxeArmorCode"; I believe this matches the existing formatting for
strings that exist in the game, but let me know if I've made a mistake
there.
I removed many D_8009XXXX which are within g_Status, to make sure nobody
uses these in their D_ form in the future.
There is a loop in this function which iterates, in blocks of 3, over
the last 21 entries in g_Status. I noticed that this overlaps with the
Sword Familiar level check in CalcAttack, so I believe this to be the
stats for each of the 7 available familiars. One stat is the level,
another should be the EXP, and the other is something else. I will leave
this as a matter of future work, since the details of familiars are not
key to the decompiling of this particular function.
I tried to comment this function fairly heavily. Many variables are
touched by this and there are a large number of if-statements which are
highly relevant to the game logic. Given that different people reading
the code have different levels of familiarity with behavior of the game,
being clear about the circumstances where a variable holds a certain
value seems useful.
This function was a DECOMP_ME_WIP previously; I did not use that
preexisting code and instead decompiled this function from scratch
myself.
I think that covers all the things worth mentioning!
---------
Co-authored-by: sozud <122322823+sozud@users.noreply.github.com>
2023-07-29 01:32:01 +00:00
|
|
|
g_api_InitStatsAndGear = 0x8003C854;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_api_func_80134714 = 0x8003C858;
|
|
|
|
g_api_func_80134678 = 0x8003C85C;
|
|
|
|
g_api_func_800F53A4 = 0x8003C860;
|
|
|
|
g_api_CheckEquipmentItemCount = 0x8003C864;
|
|
|
|
g_api_func_8010BF64 = 0x8003C868;
|
|
|
|
g_api_func_800F1FC4 = 0x8003C86C;
|
|
|
|
g_api_func_800F2288 = 0x8003C870;
|
|
|
|
g_api_func_8011A3AC = 0x8003C874;
|
|
|
|
g_api_func_800FF460 = 0x8003C878;
|
|
|
|
g_api_func_800FF494 = 0x8003C87C;
|
2023-11-12 17:55:38 +00:00
|
|
|
g_api_CdSoundCommandQueueEmpty = 0x8003C880;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_api_func_80133950 = 0x8003C884;
|
|
|
|
g_api_func_800F27F4 = 0x8003C888;
|
|
|
|
g_api_func_800FF110 = 0x8003C88C;
|
|
|
|
g_api_func_800FD664 = 0x8003C890;
|
|
|
|
g_api_func_800FD5BC = 0x8003C894;
|
|
|
|
g_api_LearnSpell = 0x8003C898;
|
2023-08-02 03:46:21 +00:00
|
|
|
g_api_DebugInputWait = 0x8003C89C;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_api_unused12C = 0x8003C8A0;
|
|
|
|
g_api_unused130 = 0x8003C8A4;
|
|
|
|
g_api_unused134 = 0x8003C8A8;
|
|
|
|
g_api_unused138 = 0x8003C8AC;
|
|
|
|
g_api_unused13C = 0x8003C8B4;
|
2023-09-22 22:42:06 +00:00
|
|
|
g_GameTimer = 0x8003C8C4;
|
Replace RoomDimensions with Tilemap (#730)
Failing to decompile [RenderTilemap](https://decomp.me/scratch/WigVS)
made me realise there were a few fields and structures I have always
been suspicious to be part of the same structure. After
cross-referencing overlapping fields from different structures, I was
able to merge `D_80073088`, `g_Camera`, `D_8007309C`, `g_CurrentRoom`
and `g_CurrentRoomTileLayout` into the new `g_Tilemap`.
I was forced to touch the majority of the code-base, which gave me the
opportunity to standardise some field names (e.g. from
`currentRoomTileLayout`, `roomLayout`, `layout`, `t` into `tilemap`),
remove some fake code, redundant code and adjust some symbols.
2023-11-04 16:43:45 +00:00
|
|
|
D_8003C908 = 0x8003C908;
|
2023-05-06 11:24:32 +00:00
|
|
|
_svm_damper = 0x8003C954;
|
2023-09-22 22:42:06 +00:00
|
|
|
g_Timer = 0x8003C998;
|
2023-09-13 19:29:39 +00:00
|
|
|
g_PlayableCharacter = 0x8003C9A0;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_MenuNavigation = 0x8003C9A8;
|
|
|
|
g_MenuNavigation_cursorRelic = 0x8003C9AC;
|
|
|
|
g_MenuNavigation_cursorEquip = 0x8003C9B0;
|
|
|
|
g_MenuNavigation_cursorEquipHand = 0x8003C9B4;
|
|
|
|
g_MenuNavigation_cursorEquipHead = 0x8003C9B8;
|
|
|
|
g_MenuNavigation_scrollEquipHand = 0x8003C9C8;
|
2023-10-17 23:43:28 +00:00
|
|
|
g_MenuNavigation_scrollEquipAccessories = 0x8003C9CC;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_MenuNavigation_cursorSpells = 0x8003C9DC;
|
|
|
|
g_MenuNavigation_cursorSettings = 0x8003C9E0;
|
|
|
|
g_MenuNavigation_cursorCloak = 0x8003C9E4;
|
|
|
|
g_MenuNavigation_cursorButtons = 0x8003C9E8;
|
|
|
|
g_Settings = 0x8003C9F8;
|
|
|
|
g_Settings_buttonConfig_1 = 0x8003C9FC;
|
|
|
|
g_Settings_buttonMask_0 = 0x8003CA18;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_Settings_cloakColors_0 = 0x8003CAA8;
|
|
|
|
g_Settings_cloakColors_1 = 0x8003CAAC;
|
|
|
|
g_Settings_cloakColors_2 = 0x8003CAB0;
|
|
|
|
g_Settings_cloakColors_3 = 0x8003CAB4;
|
|
|
|
g_Settings_cloakColors_4 = 0x8003CAB8;
|
|
|
|
g_Settings_cloakColors_5 = 0x8003CABC;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_Settings_windowColors_0 = 0x8003CAC0;
|
|
|
|
g_Settings_windowColors_1 = 0x8003CAC4;
|
|
|
|
g_Settings_windowColors_2 = 0x8003CAC8;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_Settings_isCloakLiningReversed = 0x8003CAF8;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_Settings_isSoundMono = 0x8003CAFC;
|
2023-05-13 22:03:13 +00:00
|
|
|
g_GpuBuffers = 0x8003CB08;
|
2023-05-15 18:15:09 +00:00
|
|
|
g_GpuBuffers_0_draw_isbg = 0x8003CB24;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_GpuBuffers_0_draw_r0 = 0x8003CB25;
|
|
|
|
g_GpuBuffers_0_draw_g0 = 0x8003CB26;
|
|
|
|
g_GpuBuffers_0_draw_b0 = 0x8003CB27;
|
2023-05-13 22:03:13 +00:00
|
|
|
g_GpuBuffers_1_buf_draw_clip_y = 0x80054302;
|
2023-05-15 18:15:09 +00:00
|
|
|
g_GpuBuffers_1_draw_isbg = 0x80054318;
|
2023-07-17 21:33:50 +00:00
|
|
|
g_GpuBuffers_1_draw_r0 = 0x80054319;
|
|
|
|
g_GpuBuffers_1_draw_g0 = 0x8005431A;
|
|
|
|
g_GpuBuffers_1_draw_b0 = 0x8005431B;
|
2023-05-06 11:24:32 +00:00
|
|
|
_svm_stereo_mono = 0x8006BAF8;
|
2023-05-16 02:19:37 +00:00
|
|
|
g_LoadFile = 0x8006BAFC;
|
2023-09-13 19:29:39 +00:00
|
|
|
g_CastleMap = 0x8006BB74;
|
2023-05-12 19:50:42 +00:00
|
|
|
g_CurrentBuffer = 0x8006C37C;
|
2023-05-06 11:24:32 +00:00
|
|
|
_snd_ev_flag = 0x8006C380;
|
|
|
|
kMaxPrograms = 0x8006C394;
|
2023-05-09 11:49:20 +00:00
|
|
|
g_CdStep = 0x8006C398;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_backbufferX = 0x8006C39C;
|
|
|
|
g_backbufferY = 0x8006C3A0;
|
2023-05-13 19:35:35 +00:00
|
|
|
g_IsUsingCd = 0x8006C3B0;
|
2023-05-04 23:24:40 +00:00
|
|
|
g_CurrentEntity = 0x8006C3B8;
|
2023-10-25 17:54:33 +00:00
|
|
|
g_Servant = 0x8006CBC4;
|
2023-05-06 11:24:32 +00:00
|
|
|
_svm_tn = 0x8006CBC8;
|
|
|
|
g_Clut = 0x8006CBCC;
|
2023-05-18 18:54:05 +00:00
|
|
|
g_Player = 0x80072BD0;
|
|
|
|
g_Player_padPressed = 0x80072EE8;
|
|
|
|
g_Player_padTapped = 0x80072EEC;
|
|
|
|
g_Player_padHeld = 0x80072EF0;
|
2023-05-17 17:36:10 +00:00
|
|
|
g_Player_D_80072EF4 = 0x80072EF4;
|
|
|
|
g_Player_D_80072EF6 = 0x80072EF6;
|
|
|
|
g_Player_D_80072EF8 = 0x80072EF8;
|
|
|
|
g_Player_D_80072EFC = 0x80072EFC;
|
|
|
|
g_Player_D_80072F00 = 0x80072F00;
|
|
|
|
g_Player_D_80072F02 = 0x80072F02;
|
|
|
|
g_Player_D_80072F04 = 0x80072F04;
|
|
|
|
g_Player_D_80072F06 = 0x80072F06;
|
|
|
|
g_Player_D_80072F08 = 0x80072F08;
|
|
|
|
g_Player_D_80072F0A = 0x80072F0A;
|
|
|
|
g_Player_D_80072F0C = 0x80072F0C;
|
|
|
|
g_Player_D_80072F0E = 0x80072F0E;
|
|
|
|
g_Player_D_80072F10 = 0x80072F10;
|
|
|
|
g_Player_D_80072F12 = 0x80072F12;
|
|
|
|
g_Player_D_80072F14 = 0x80072F14;
|
|
|
|
g_Player_D_80072F16 = 0x80072F16;
|
|
|
|
g_Player_D_80072F18 = 0x80072F18;
|
|
|
|
g_Player_D_80072F1A = 0x80072F1A;
|
|
|
|
g_Player_D_80072F1C = 0x80072F1C;
|
|
|
|
g_Player_D_80072F1E = 0x80072F1E;
|
|
|
|
g_Player_pl_vram_flag = 0x80072F20;
|
|
|
|
g_Player_unk04 = 0x80072F24;
|
|
|
|
g_Player_unk08 = 0x80072F28;
|
|
|
|
g_Player_unk0C = 0x80072F2C;
|
|
|
|
g_Player_unk10 = 0x80072F30;
|
|
|
|
g_Player_unk14 = 0x80072F34;
|
|
|
|
g_Player_unk18 = 0x80072F38;
|
|
|
|
g_Player_unk1C = 0x80072F3C;
|
|
|
|
g_Player_unk20_0 = 0x80072F40;
|
|
|
|
g_Player_unk40 = 0x80072F60;
|
|
|
|
g_Player_pl_high_jump_timer = 0x80072F62;
|
|
|
|
g_Player_unk44 = 0x80072F64;
|
|
|
|
g_Player_unk46 = 0x80072F66;
|
|
|
|
g_Player_unk48 = 0x80072F68;
|
|
|
|
g_Player_unk4A = 0x80072F6A;
|
|
|
|
g_Player_unk4C = 0x80072F6C;
|
|
|
|
g_Player_unk4E = 0x80072F6E;
|
|
|
|
g_Player_unk50 = 0x80072F70;
|
|
|
|
g_Player_unk52 = 0x80072F72;
|
|
|
|
g_Player_unk54 = 0x80072F74;
|
|
|
|
g_Player_unk56 = 0x80072F76;
|
|
|
|
g_Player_unk58 = 0x80072F78;
|
|
|
|
g_Player_unk5A = 0x80072F7A;
|
|
|
|
g_Player_unk5C = 0x80072F7C;
|
|
|
|
g_Player_unk5E = 0x80072F7E;
|
|
|
|
g_Player_unk60 = 0x80072F80;
|
|
|
|
g_Player_unk62 = 0x80072F82;
|
|
|
|
g_Player_unk64 = 0x80072F84;
|
|
|
|
g_Player_unk66 = 0x80072F86;
|
|
|
|
g_Player_unk68 = 0x80072F88;
|
|
|
|
g_Player_unk6A = 0x80072F8A;
|
|
|
|
g_Player_unk6C = 0x80072F8C;
|
|
|
|
g_Player_unk6E = 0x80072F8E;
|
|
|
|
g_Player_unk70 = 0x80072F90;
|
|
|
|
g_Player_unk72 = 0x80072F92;
|
|
|
|
g_Player_unk74 = 0x80072F94;
|
|
|
|
g_Player_unk78 = 0x80072F98;
|
|
|
|
g_Player_unk7A = 0x80072F9A;
|
|
|
|
g_Player_unk7C = 0x80072F9C;
|
|
|
|
g_Player_unk7E = 0x80072F9E;
|
2023-10-13 03:55:23 +00:00
|
|
|
g_GfxLoad = 0x80072FA0;
|
2023-05-15 13:42:52 +00:00
|
|
|
g_GameStep = 0x80073060;
|
2023-10-25 17:54:33 +00:00
|
|
|
g_ServantLoaded = 0x80073064;
|
2023-05-08 12:29:58 +00:00
|
|
|
g_EvSwCardEnd = 0x80073068;
|
|
|
|
g_EvSwCardErr = 0x8007306C;
|
|
|
|
g_EvSwCardTmo = 0x80073070;
|
|
|
|
g_EvSwCardNew = 0x80073078;
|
2023-05-06 11:24:32 +00:00
|
|
|
PadIdentifier = 0x80073080;
|
Replace RoomDimensions with Tilemap (#730)
Failing to decompile [RenderTilemap](https://decomp.me/scratch/WigVS)
made me realise there were a few fields and structures I have always
been suspicious to be part of the same structure. After
cross-referencing overlapping fields from different structures, I was
able to merge `D_80073088`, `g_Camera`, `D_8007309C`, `g_CurrentRoom`
and `g_CurrentRoomTileLayout` into the new `g_Tilemap`.
I was forced to touch the majority of the code-base, which gave me the
opportunity to standardise some field names (e.g. from
`currentRoomTileLayout`, `roomLayout`, `layout`, `t` into `tilemap`),
remove some fake code, redundant code and adjust some symbols.
2023-11-04 16:43:45 +00:00
|
|
|
g_Tilemap = 0x80073084;
|
|
|
|
g_Tilemap_posX_i_hi = 0x8007308E;
|
|
|
|
g_Tilemap_posY_i_hi = 0x80073092;
|
|
|
|
g_Tilemap_flags = 0x800730A0;
|
|
|
|
g_Tilemap_hSize = 0x800730A4;
|
|
|
|
g_Tilemap_vSize = 0x800730A8;
|
|
|
|
g_Tilemap_unk8 = 0x800730AC;
|
|
|
|
g_Tilemap_left = 0x800730B0;
|
|
|
|
g_Tilemap_top = 0x800730B4;
|
|
|
|
g_Tilemap_right = 0x800730B8;
|
|
|
|
g_Tilemap_bottom = 0x800730BC;
|
|
|
|
g_Tilemap_x = 0x800730C0;
|
|
|
|
g_Tilemap_y = 0x800730C4;
|
|
|
|
g_Tilemap_width = 0x800730C8;
|
|
|
|
g_Tilemap_height = 0x800730CC;
|
|
|
|
g_Tilemap_bg = 0x800730D8;
|
|
|
|
g_Tilemap_bg_0_tiledef = 0x800730DC;
|
|
|
|
g_Tilemap_bg_0_scrollX_i_hi = 0x800730E2;
|
|
|
|
g_Tilemap_bg_0_scrollY_i_hi = 0x800730E6;
|
|
|
|
g_Tilemap_bg_0_zPriority = 0x800730F0;
|
|
|
|
g_Tilemap_bg_0_flags = 0x800730F4;
|
|
|
|
g_Tilemap_bg_0_w = 0x800730F8;
|
|
|
|
g_Tilemap_bg_0_h = 0x800730FC;
|
|
|
|
g_Tilemap_bg_0_D_80073100 = 0x80073100;
|
Extract and document all functions from main.exe (#736)
This took me a while. I used a [throw-away
script](https://gist.github.com/Xeeynamo/58da1ff8f3831d0ba5d23da27cbca025)
to help me with the quest, but I still had to manually check every
single YAML subsegment.
I transported over what we were able to decompile from main. For a few
functions I added the signatures and documented existing DRA code,
especially on the sound department (got inspired by the recent @sozud
PRs).
All the `.text` part from `main.exe` is now completely extracted as
C/ASM where appropiate. Almost all the functions have their original
PSY-Q names but 7 of them: `func_80012DBC`, `func_80012F84`,
`func_80017008`, `func_80017078`, `func_8001929C`, `func_80021F0C` and
`func_800286E0`. I did not feel confident enough to rename them, so I
left them be. The rest of the functions I am 99% sure they are all
accurate.
I am now excluding the
[asm/](https://github.com/Xeeynamo/sotn-decomp/tree/master/asm/us/main/psxsdk)
folder from the repo. It was useless.
This research confirms me the game uses the PSY-Q 3.5 libraries, with
the exception of `LIBGPU.LIB`, which is from PSY-Q 3.0 for some unknown
reason.
EDIT: `make format` was not taking care of duplicated symbols in our
symbol list. To speed-up my work, all the duplicate symbols (duplicates
= name AND offset) are now removed.
2023-11-06 22:53:27 +00:00
|
|
|
g_Tilemap_bg_0_scrollKind = 0x80073104;
|
2023-05-08 12:29:12 +00:00
|
|
|
g_Entities = 0x800733D8;
|
2023-05-27 10:13:49 +00:00
|
|
|
PLAYER_posX_i_hi = 0x800733DA;
|
|
|
|
PLAYER_posY_val = 0x800733DC;
|
|
|
|
PLAYER_posY_i_hi = 0x800733DE;
|
2023-07-21 22:19:21 +00:00
|
|
|
PLAYER_velocityX = 0x800733E0;
|
|
|
|
PLAYER_velocityY = 0x800733E4;
|
2023-07-17 21:33:50 +00:00
|
|
|
PLAYER_hitboxOffX = 0x800733E8;
|
|
|
|
PLAYER_hitboxOffY = 0x800733EA;
|
2023-11-17 17:16:56 +00:00
|
|
|
PLAYER_facingLeft = 0x800733EC;
|
2023-05-27 10:13:49 +00:00
|
|
|
PLAYER_palette = 0x800733EE;
|
|
|
|
PLAYER_blendMode = 0x800733F0;
|
2023-10-09 23:05:57 +00:00
|
|
|
PLAYER_drawFlags = 0x800733F1;
|
|
|
|
PLAYER_rotZ = 0x800733F6;
|
2023-07-17 21:33:50 +00:00
|
|
|
PLAYER_rotPivotX = 0x800733F8;
|
|
|
|
PLAYER_rotPivotY = 0x800733FA;
|
2023-05-27 10:13:49 +00:00
|
|
|
PLAYER_zPriority = 0x800733FC;
|
2023-07-16 09:42:26 +00:00
|
|
|
PLAYER_entityId = 0x800733FE;
|
2023-05-27 10:13:49 +00:00
|
|
|
PLAYER_step = 0x80073404;
|
2023-07-17 21:33:50 +00:00
|
|
|
PLAYER_step_s = 0x80073406;
|
2023-07-16 09:42:26 +00:00
|
|
|
PLAYER_entityRoomIndex = 0x8007340A;
|
2023-05-27 10:13:49 +00:00
|
|
|
PLAYER_unk44 = 0x8007341C;
|
|
|
|
PLAYER_unk4C = 0x80073424;
|
|
|
|
PLAYER_animFrameIdx = 0x80073428;
|
|
|
|
PLAYER_animFrameDuration = 0x8007342A;
|
|
|
|
PLAYER_animSet = 0x8007342C;
|
|
|
|
PLAYER_animCurFrame = 0x8007342E;
|
|
|
|
PLAYER_unk5A = 0x80073432;
|
|
|
|
PLAYER_unkA4 = 0x8007347C;
|
|
|
|
PLAYER_ext_generic_unkAC = 0x80073484;
|
|
|
|
g_Entities_1 = 0x80073494;
|
2023-07-16 09:42:26 +00:00
|
|
|
g_Entities_1_entityId = 0x800734BA;
|
2023-05-27 10:13:49 +00:00
|
|
|
g_Entities_1_flags = 0x800734C8;
|
|
|
|
g_Entities_1_animFrameIdx = 0x800734E4;
|
|
|
|
g_Entities_1_animCurFrame = 0x800734EA;
|
2023-07-02 07:47:15 +00:00
|
|
|
g_Entities_1_primIndex = 0x800734F8;
|
2023-05-27 10:13:49 +00:00
|
|
|
g_Entities_1_unk7C_S8_unk0 = 0x80073510;
|
|
|
|
g_Entities_1_unk7C_S8_unk1 = 0x80073511;
|
|
|
|
g_Entities_1_unk7C_S8_unk2 = 0x80073512;
|
|
|
|
g_Entities_1_unk7C_S8_unk3 = 0x80073513;
|
2023-05-08 12:29:12 +00:00
|
|
|
g_Entities_STAGE_ENTITY_START = 0x800762D8;
|
2023-05-08 12:29:58 +00:00
|
|
|
g_EvHwCardEnd = 0x8007EFD8;
|
|
|
|
g_EvHwCardErr = 0x8007EFDC;
|
|
|
|
g_EvHwCardTmo = 0x8007EFE0;
|
2023-09-01 16:29:02 +00:00
|
|
|
g_Pix = 0x8007EFE4;
|
|
|
|
g_Pix_1 = 0x80080FE4;
|
|
|
|
g_Pix_2 = 0x80082FE4;
|
|
|
|
g_Pix_3 = 0x80084FE4;
|
2023-05-08 12:29:58 +00:00
|
|
|
g_EvHwCardNew = 0x80086FE4;
|
2023-05-06 11:24:32 +00:00
|
|
|
spuVmMaxVoice = 0x80086FE8;
|
|
|
|
g_PrimBuf = 0x80086FEC;
|
2023-10-17 23:43:28 +00:00
|
|
|
g_PrimBuf_0_r0 = 0x80086FF0;
|
|
|
|
g_PrimBuf_0_r1 = 0x80086FFC;
|
|
|
|
g_PrimBuf_0_priority = 0x80087012;
|
|
|
|
g_PrimBuf_0_blendMode = 0x8008701E;
|
2023-05-06 11:24:32 +00:00
|
|
|
playerX = 0x800973F0;
|
|
|
|
playerY = 0x800973F4;
|
2023-10-11 23:45:50 +00:00
|
|
|
g_unkGraphicsStruct = 0x80097408;
|
Decompile ST0 func_801BA7D8 (#515)
This is an unknown function. I don't know what it does. It is duplicated
across most overlays. It is called in CollectGold, EntityEquipItemDrop,
and TestCollisions.
It seems to take in a string, and then do a bunch of things with
primitives, but I don't know what. We don't directly reference that
array, we only read and write to it based on a pointer which moves
through the array. I tried to remove the pointer but didn't get
anywhere.
Fully-matching scratch is here: https://decomp.me/scratch/UV2K2
I am starting with only this one version of the function, so that if
changes need to be made (variable names, control flow, etc), I can
update them once here, and then copy them to the other places, instead
of making changes in every place. Once we are happy with the state of
this function, I will add the duplicates to this PR prior to merging.
---------
Co-authored-by: bismurphy <bismurphy@users.noreply.github.com>
2023-08-27 01:30:57 +00:00
|
|
|
g_BottomCornerTextTimer = 0x80097410;
|
|
|
|
g_BottomCornerTextPrims = 0x80097414;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_entityDestroyed = 0x80097428;
|
|
|
|
g_pads = 0x80097490;
|
|
|
|
g_pads_0_released = 0x80097492;
|
|
|
|
g_pads_0_tapped = 0x80097494;
|
|
|
|
g_pads_0_repeat = 0x80097496;
|
|
|
|
g_pads_1_pressed = 0x80097498;
|
|
|
|
g_pads_1_tapped = 0x8009749C;
|
|
|
|
g_StageId = 0x800974A0;
|
|
|
|
_svm_vcf = 0x800974A8;
|
|
|
|
g_UseDisk = 0x800978AC;
|
|
|
|
_snd_openflag = 0x800978B0;
|
|
|
|
g_randomNext = 0x800978B8;
|
|
|
|
svm_cur = 0x800978C8;
|
|
|
|
svm_vab_used = 0x800978E8;
|
2023-10-25 17:54:33 +00:00
|
|
|
g_MenuStep = 0x800978F8;
|
2023-05-06 11:24:32 +00:00
|
|
|
_svm_auto_kof_mode = 0x80097900;
|
2023-05-13 23:37:28 +00:00
|
|
|
g_DemoMode = 0x80097914;
|
2023-10-25 17:54:33 +00:00
|
|
|
g_LoadOvlIdx = 0x80097918;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_GpuUsage = 0x8009792C;
|
|
|
|
g_GpuUsage_gt4 = 0x80097930;
|
|
|
|
g_GpuUsage_g4 = 0x80097934;
|
|
|
|
g_GpuUsage_gt3 = 0x80097938;
|
|
|
|
g_GpuUsage_line = 0x8009793C;
|
|
|
|
g_GpuUsage_sp16 = 0x80097940;
|
|
|
|
g_GpuUsage_tile = 0x80097944;
|
|
|
|
g_GpuUsage_sp = 0x80097948;
|
|
|
|
g_GpuUsage_env = 0x8009794C;
|
|
|
|
VBLANK_MINUS = 0x80097950;
|
|
|
|
g_Status = 0x80097964;
|
|
|
|
g_Status_relics_1 = 0x80097965;
|
|
|
|
g_Status_relics_4 = 0x80097968;
|
|
|
|
g_Status_relics_5 = 0x80097969;
|
|
|
|
g_Status_relics_6 = 0x8009796A;
|
|
|
|
g_Status_relics_7 = 0x8009796B;
|
|
|
|
g_Status_relics_9 = 0x8009796D;
|
|
|
|
g_Status_relics_10 = 0x8009796E;
|
|
|
|
g_Status_relics_11 = 0x8009796F;
|
|
|
|
g_Status_relics_12 = 0x80097970;
|
|
|
|
g_Status_relics_13 = 0x80097971;
|
|
|
|
g_Status_relics_15 = 0x80097973;
|
|
|
|
g_Status_relics_16 = 0x80097974;
|
2023-05-17 17:36:10 +00:00
|
|
|
g_Status_relics_17 = 0x80097975;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_Status_relics_20 = 0x80097978;
|
|
|
|
g_Status_relics_22 = 0x8009797A;
|
|
|
|
g_Status_relics_25 = 0x8009797D;
|
|
|
|
g_Status_relics_26 = 0x8009797E;
|
|
|
|
g_Status_relics_27 = 0x8009797F;
|
|
|
|
g_Status_relics_28 = 0x80097980;
|
|
|
|
g_Status_relics_29 = 0x80097981;
|
|
|
|
g_Status_spells = 0x80097982;
|
|
|
|
g_Status_equipHandOrder = 0x80097A8D;
|
|
|
|
g_SaveName = 0x80097B90;
|
2023-05-17 17:36:10 +00:00
|
|
|
g_Status_hp = 0x80097BA0;
|
|
|
|
g_Status_hpMax = 0x80097BA4;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_Status_hearts = 0x80097BA8;
|
|
|
|
g_Status_heartsMax = 0x80097BAC;
|
|
|
|
g_Status_mp = 0x80097BB0;
|
|
|
|
g_Status_mpMax = 0x80097BB4;
|
|
|
|
g_Status_statsBase_0 = 0x80097BB8;
|
|
|
|
g_Status_statsBase_1 = 0x80097BBC;
|
|
|
|
g_Status_statsBase_2 = 0x80097BC0;
|
|
|
|
g_Status_statsBase_3 = 0x80097BC4;
|
|
|
|
g_Status_statsEquip_0 = 0x80097BC8;
|
|
|
|
g_Status_statsEquip_1 = 0x80097BCC;
|
|
|
|
g_Status_statsEquip_2 = 0x80097BD0;
|
|
|
|
g_Status_statsEquip_3 = 0x80097BD4;
|
|
|
|
g_Status_statsTotal_0 = 0x80097BD8;
|
|
|
|
g_Status_statsTotal_1 = 0x80097BDC;
|
|
|
|
g_Status_statsTotal_2 = 0x80097BE0;
|
|
|
|
g_Status_statsTotal_3 = 0x80097BE4;
|
|
|
|
g_Status_level = 0x80097BE8;
|
|
|
|
g_Status_exp = 0x80097BEC;
|
|
|
|
g_Status_gold = 0x80097BF0;
|
|
|
|
g_Status_killCount = 0x80097BF4;
|
|
|
|
g_Status_D_80097BF8 = 0x80097BF8;
|
2023-05-16 02:33:00 +00:00
|
|
|
g_Status_subWeapon = 0x80097BFC;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_Status_equipment_0 = 0x80097C00;
|
2023-05-17 17:36:10 +00:00
|
|
|
g_Status_equipment_1 = 0x80097C04;
|
|
|
|
g_Status_equipment_2 = 0x80097C08;
|
|
|
|
g_Status_equipment_3 = 0x80097C0C;
|
2023-05-06 11:24:32 +00:00
|
|
|
g_Status_equipment_5 = 0x80097C14;
|
|
|
|
g_Status_equipment_6 = 0x80097C18;
|
|
|
|
g_Status_attackHands_0 = 0x80097C1C;
|
|
|
|
g_Status_attackHands_1 = 0x80097C20;
|
|
|
|
g_Status_defenseEquip = 0x80097C24;
|
|
|
|
g_Status_defenseElement = 0x80097C28;
|
|
|
|
g_Status_D_80097C2A = 0x80097C2A;
|
|
|
|
g_Status_D_80097C2C = 0x80097C2C;
|
|
|
|
g_Status_D_80097C2E = 0x80097C2E;
|
|
|
|
g_Status_timerHours = 0x80097C30;
|
|
|
|
g_Status_timerFrames = 0x80097C3C;
|
|
|
|
g_Status_D_80097C40 = 0x80097C40;
|
|
|
|
g_Status_D_80097C44 = 0x80097C44;
|
|
|
|
g_Status_D_80097C48 = 0x80097C48;
|
|
|
|
g_Status_D_80097C4C = 0x80097C4C;
|
|
|
|
g_Status_D_80097C74 = 0x80097C74;
|
|
|
|
_ss_score = 0x80097C9C;
|
2023-10-10 18:56:42 +00:00
|
|
|
g_PlayerDraw = 0x80097D1C;
|
2023-05-06 11:24:32 +00:00
|
|
|
_SsMarkCallback = 0x80097F9C;
|
2023-09-09 20:09:46 +00:00
|
|
|
_snd_seq_s_max = 0x8009879C;
|
|
|
|
_snd_seq_t_max = 0x800987A4;
|
2023-05-06 11:24:32 +00:00
|
|
|
_svm_vab_count = 0x8009880C;
|
2023-07-20 03:25:47 +00:00
|
|
|
g_DebugPlayer = 0x80098850;
|
2023-11-08 01:41:53 +00:00
|
|
|
g_MainGame = 0x800A0000;
|
2023-05-06 11:24:32 +00:00
|
|
|
D_8017A000 = 0x8017A000;
|
|
|
|
D_8017D000 = 0x8017D000;
|