Merge pull request #216 from gamemasterplc/main

Decompile w21
This commit is contained in:
gamemasterplc 2024-03-14 09:08:45 -05:00 committed by GitHub
commit 83a8ebe062
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 98 additions and 13 deletions

View file

@ -10,7 +10,7 @@ REL/board_executor.c:
.text start:0x00000000 end:0x000000E0 .text start:0x00000000 end:0x000000E0
.rodata start:0x00000000 end:0x00000010 .rodata start:0x00000000 end:0x00000010
REL/w21Dll/main.c: REL/w20Dll/main.c:
.text start:0x000000E0 end:0x00000678 .text start:0x000000E0 end:0x00000678
.rodata start:0x00000010 end:0x00000030 .rodata start:0x00000010 end:0x00000030
.data start:0x00000000 end:0x00000034 .data start:0x00000000 end:0x00000034

View file

@ -3,16 +3,16 @@ _prolog = .text:0x00000030; // type:function size:0x64 scope:global
_epilog = .text:0x00000094; // type:function size:0x4C scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global
BoardCreate = .text:0x000000E0; // type:function size:0x1D4 BoardCreate = .text:0x000000E0; // type:function size:0x1D4
BoardDestroy = .text:0x000002B4; // type:function size:0xB8 BoardDestroy = .text:0x000002B4; // type:function size:0xB8
fn_1_36C = .text:0x0000036C; // type:function size:0x44 LightSetHook = .text:0x0000036C; // type:function size:0x44 scope:local
fn_1_3B0 = .text:0x000003B0; // type:function size:0x20 LightResetHook = .text:0x000003B0; // type:function size:0x20 scope:local
fn_1_3D0 = .text:0x000003D0; // type:function size:0x8 WalkEvent = .text:0x000003D0; // type:function size:0x8 scope:local
fn_1_3D8 = .text:0x000003D8; // type:function size:0x4 WalkMiniEvent = .text:0x000003D8; // type:function size:0x4 scope:local
fn_1_3DC = .text:0x000003DC; // type:function size:0x4 LandEvent = .text:0x000003DC; // type:function size:0x4 scope:local
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte _ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte bgMdl = .data:0x00000000; // type:object size:0x2 scope:local data:2byte
lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte fgMdl = .data:0x00000002; // type:object size:0x2 scope:local data:2byte
lbl_1_data_4 = .data:0x00000004; // type:object size:0x2 data:2byte hostMdl = .data:0x00000004; // type:object size:0x2 scope:local data:2byte
lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 hostMotTbl = .data:0x00000008; // type:object size:0x8 scope:local

View file

@ -1104,7 +1104,7 @@ config.libs = [
Rel('w21Dll', Rel('w21Dll',
objects = { objects = {
Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/board_executor.c"),
Object(NonMatching, "REL/w21Dll/main.c"), Object(Matching, "REL/w21Dll/main.c"),
} }
), ),
Rel('ztardll', Rel('ztardll',

85
src/REL/w21Dll/main.c Normal file
View file

@ -0,0 +1,85 @@
#include "game/board/space.h"
#include "game/board/model.h"
#include "game/board/main.h"
#include "game/board/star.h"
#include "game/board/shop.h"
#include "game/data.h"
static s16 bgMdl = -1;
static s16 fgMdl = -1;
static s16 hostMdl = -1;
static s32 hostMotTbl[] = {
DATA_MAKE_NUM(DATADIR_BGUEST, 42),
-1
};
static void LightSetHook(void);
static void LightResetHook(void);
static s32 WalkEvent(void);
static s32 WalkMiniEvent(void);
static s32 LandEvent(void);
void BoardCreate(void)
{
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W21, 0));
bgMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W21, 1), NULL, 0);
fn_8006DDE8(bgMdl, -1.0f);
BoardModelMotionStart(bgMdl, 0, 0x40000001);
fgMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W21, 2), NULL, 0);
fn_8006DDE8(fgMdl, -1.0f);
BoardModelPosSet(fgMdl, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(fgMdl, 0, 0x40000001);
hostMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 41), hostMotTbl, 0);
BoardModelPosSet(hostMdl, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(hostMdl, 1, 0x40000001);
BoardLightHookSet(LightSetHook, LightResetHook);
BoardSpaceWalkEventFuncSet(WalkEvent);
BoardSpaceWalkMiniEventFuncSet(WalkMiniEvent);
BoardSpaceLandEventFuncSet(LandEvent);
BoardStarHostSet(hostMdl);
BoardShopHostSet(hostMdl);
}
void BoardDestroy(void)
{
if(hostMdl != -1) {
BoardModelKill(hostMdl);
hostMdl = -1;
}
if(bgMdl != -1) {
BoardModelKill(bgMdl);
bgMdl = -1;
}
if(fgMdl != -1) {
BoardModelKill(fgMdl);
fgMdl = -1;
}
}
static void LightSetHook(void)
{
s16 id = BoardModelIDGet(bgMdl);
Hu3DModelLightInfoSet(id, 1);
}
static void LightResetHook(void)
{
Hu3DFogClear();
}
static s32 WalkEvent(void)
{
return 0;
}
static s32 WalkMiniEvent(void)
{
}
static s32 LandEvent(void)
{
}