Compare commits

8 Commits
Author SHA1 Message Date
weirdbeardgame 23e46e9421 Add Cdvd, keeping it disabled for now due to several rodata related issues
Upload Objdiff Progress Report Artifacts / upload (map[game_id:SLUS_210.07 language:us]) (push) Canceled after 0s
2026-09-25 19:57:36 -05:00
Piccio23 d178f42037 update report.json 2026-09-21 16:07:28 -05:00
Piccio23 11edf2c36a update KuonMsg.h 2026-09-21 15:34:30 -05:00
Piccio23 a12e3bc31e update Camera.h 2026-09-21 15:34:30 -05:00
Piccio23 aeee7ce000 update Event0001.h 2026-09-21 15:34:30 -05:00
Piccio23 ec0fe4249a match Event0001 2026-09-21 15:34:30 -05:00
Piccio23 687af5ace6 update Event.h 2026-09-21 15:34:30 -05:00
Piccio23 1c1cba91cd update kuon.yaml 2026-09-21 15:34:30 -05:00
10 changed files with 23213 additions and 34 deletions
+6 -6
View File
@@ -235,8 +235,8 @@ segments:
- [0x032110, asmtu, cs4/Seimei/src/Camera] - [0x032110, asmtu, cs4/Seimei/src/Camera]
- [0x034930, asmtu, cs4/Seimei/src/Debug] - [0x034930, asmtu, cs4/Seimei/src/Debug]
- [0x034D10, asmtu, cs4/Seimei/src/Draw] - [0x034D10, asmtu, cs4/Seimei/src/Draw]
- [0x038710, c, cs4/Seimei/src/File] - [0x038710, c, cs4/Seimei/src/File]
- [0x038D00, c, cs4/Seimei/src/Game] - [0x038D00, c, cs4/Seimei/src/Game]
- [0x039A00, asmtu, cs4/Seimei/src/Load] - [0x039A00, asmtu, cs4/Seimei/src/Load]
- [0x03A380, asmtu, cs4/Seimei/src/Main] - [0x03A380, asmtu, cs4/Seimei/src/Main]
- [0x03AFE0, asmtu, cs4/Seimei/src/MathUtil] - [0x03AFE0, asmtu, cs4/Seimei/src/MathUtil]
@@ -254,7 +254,7 @@ segments:
- [0x047A20, asmtu, cs4/Seimei/fslib/lib/fslibsd] - [0x047A20, asmtu, cs4/Seimei/fslib/lib/fslibsd]
- [0x0484C0, asmtu, cs4/Seimei/fslib/lib/fslibsdsynth] - [0x0484C0, asmtu, cs4/Seimei/fslib/lib/fslibsdsynth]
- [0x04AA50, asmtu, cs4/Seimei/fslib/lib/fslibvu0] - [0x04AA50, asmtu, cs4/Seimei/fslib/lib/fslibvu0]
- [0x04ABC0, c, cs4/Seimei/src/Memory] - [0x04ABC0, c, cs4/Seimei/src/Memory]
- [0x04B150, asmtu, cs4/Seimei/src/Map] - [0x04B150, asmtu, cs4/Seimei/src/Map]
- [0x04FBC0, asmtu, cs4/Seimei/src/String] - [0x04FBC0, asmtu, cs4/Seimei/src/String]
- [0x04FD50, asmtu, cs4/Seimei/src/My] - [0x04FD50, asmtu, cs4/Seimei/src/My]
@@ -305,7 +305,7 @@ segments:
- [0x0807A0, asmtu, cs4/Seimei/src/Fade] - [0x0807A0, asmtu, cs4/Seimei/src/Fade]
- [0x081180, asmtu, cs4/Seimei/src/Blast] - [0x081180, asmtu, cs4/Seimei/src/Blast]
- [0x081760, asmtu, cs4/Seimei/src/Light] - [0x081760, asmtu, cs4/Seimei/src/Light]
- [0x081910, c, cs4/Seimei/src/Cdvd] - [0x081910, asmtu, cs4/Seimei/src/Cdvd]
- [0x0820E0, asmtu, cs4/Seimei/src/Filter] - [0x0820E0, asmtu, cs4/Seimei/src/Filter]
- [0x085190, asmtu, cs4/Seimei/src/msg_util] - [0x085190, asmtu, cs4/Seimei/src/msg_util]
- [0x085610, asmtu, cs4/Seimei/src/DrawOT] - [0x085610, asmtu, cs4/Seimei/src/DrawOT]
@@ -407,7 +407,7 @@ segments:
- [0x105150, asmtu, cs4/Seimei/src/E044Act] - [0x105150, asmtu, cs4/Seimei/src/E044Act]
- [0x105560, asmtu, cs4/Seimei/src/sfx/SfxFog] - [0x105560, asmtu, cs4/Seimei/src/sfx/SfxFog]
- [0x105A00, asmtu, cs4/Seimei/fslib/lib/fsspummng] - [0x105A00, asmtu, cs4/Seimei/fslib/lib/fsspummng]
- [0x106520, c, cs4/Seimei/src/Event] - [0x106520, c, cs4/Seimei/src/Event]
- [0x106A90, asmtu, cs4/Seimei/src/Event0031] - [0x106A90, asmtu, cs4/Seimei/src/Event0031]
- [0x107380, asmtu, cs4/Seimei/src/Event0051] - [0x107380, asmtu, cs4/Seimei/src/Event0051]
- [0x107E90, asmtu, cs4/Seimei/src/MiniGame/sgh/sgh] - [0x107E90, asmtu, cs4/Seimei/src/MiniGame/sgh/sgh]
@@ -440,7 +440,7 @@ segments:
- [0x115080, asmtu, cs4/Seimei/src/sfx/SfxScriptIF] - [0x115080, asmtu, cs4/Seimei/src/sfx/SfxScriptIF]
- [0x115300, asmtu, cs4/Seimei/src/Event0032] - [0x115300, asmtu, cs4/Seimei/src/Event0032]
- [0x115610, asmtu, cs4/Seimei/src/E023Act] - [0x115610, asmtu, cs4/Seimei/src/E023Act]
- [0x115620, asmtu, cs4/Seimei/src/Event0001] - [0x115620, c, cs4/Seimei/src/Event0001]
- [0x1157F0, asmtu, cs4/Seimei/src/P036Act] - [0x1157F0, asmtu, cs4/Seimei/src/P036Act]
- [0x115910, asmtu, cs4/Seimei/src/Event0085] - [0x115910, asmtu, cs4/Seimei/src/Event0085]
- [0x115B70, asmtu, unklib_00215AF0] - [0x115B70, asmtu, unklib_00215AF0]
+23055
View File
File diff suppressed because it is too large Load Diff
+5
View File
@@ -18,4 +18,9 @@ void SetCamEnv(CAMINFO * CAMINFO, int Index);
CAMINFO * GetGameCamInfo(); CAMINFO * GetGameCamInfo();
void InitCamera(); void InitCamera();
void SetCamCtrlMode(u_int mode);
void SetCameraPos(float* pos);
void SetCameraAng(float* ang);
#endif // CAMERA_H #endif // CAMERA_H
+65 -12
View File
@@ -3,15 +3,69 @@
#include "ee/eeregs.h" #include "ee/eeregs.h"
#include "Memory.h" #include "Memory.h"
unsigned int GlobalLoadTimer; // size: 0x4, address: 0x257894 static u_int CdvdAsync(void);
LPSETCDVD* lpSetCdvd;
LPLASTCDVD * lpLastCdvd;
LPCDVDREAD* lpCdvdRead;
CDVDREADST CdvdReadSt[256];
/*? fsmfstrm_AllocStreamBuffer(?, u8*, s32, ?);
s32 fsmfstrm_AttachSector(?, u32, s32, ?);
s32 fsmfstrm_DmaReadSyncBlock(?, ?);
? fsmfstrm_SetReadStart(?, ?);*/
#define SECTOR_SIZE (2048)
void InitCdvdRead(void) { void InitCdvdRead(void) {
memset(CdvdReadSt, 0, 0x14C00); memset(CdvdReadSt, 0, sizeof(CdvdReadSt));
lpSetCdvd = (LPSETCDVD* ) CdvdReadSt; lpSetCdvd = (LPSETCDVD* ) CdvdReadSt;
lpLastCdvd = (LPLASTCDVD* ) CdvdReadSt; lpLastCdvd = (LPLASTCDVD* ) CdvdReadSt;
@@ -158,7 +212,7 @@ int CdvdRead(char * filename, int size, u_char * * lpBuf, u_char bSynch, int ind
if (lpSetCdvd->fileType < 0x80) if (lpSetCdvd->fileType < 0x80)
*lpSetCdvd->lplpAddr = MemAllocAlignReal(lpSetCdvd->sector << 0xB, 0x40U, "CdvdRead", ""); *lpSetCdvd->lplpAddr = MemAllocAlignReal(lpSetCdvd->sector << 0xB, 0x40U, (char*)__FUNCTION__, "");
@@ -243,11 +297,10 @@ void CdvdBackReadProc(void) {
int CdvdAsync(void) { static u_int CdvdAsync(void) {
int aiocmd = 0; /* r29+0x1C */ int aiocmd = 0; /* r29+0x1C */
int aiores = 0; /* r29+0x18 */ int aiores = 0; /* r29+0x18 */
int size; int size;
if ((void*)lpCdvdRead == (void*)lpSetCdvd) return 0; if ((void*)lpCdvdRead == (void*)lpSetCdvd) return 0;
switch (lpCdvdRead->state) { switch (lpCdvdRead->state) {
@@ -406,9 +459,9 @@ int CdvdAsync(void) {
} }
static inline char* foo() {
printf("\\%s;1");
}
+4 -5
View File
@@ -117,10 +117,10 @@ typedef struct /* @anon3 */ {
} LPCDVD; // size: 0x4, address: 0x257528 } LPCDVD; // size: 0x4, address: 0x257528
extern unsigned int GlobalLoadTimer; // size: 0x4, address: 0x257894 extern unsigned int GlobalLoadTimer; // size: 0x4, address: 0x257894
extern LPSETCDVD* lpSetCdvd; static CDVDREADST CdvdReadSt[256];
extern LPLASTCDVD * lpLastCdvd; static LPSETCDVD* lpSetCdvd = (LPSETCDVD* )CdvdReadSt;
extern LPCDVDREAD* lpCdvdRead; static LPLASTCDVD* lpLastCdvd = (LPLASTCDVD* )CdvdReadSt;
extern CDVDREADST CdvdReadSt[256]; static LPCDVDREAD* lpCdvdRead = (LPCDVDREAD* )CdvdReadSt;
void InitCdvdRead(void); void InitCdvdRead(void);
void MakeCdvdReadPath(s8* full, s8* root, s8* fname); void MakeCdvdReadPath(s8* full, s8* root, s8* fname);
@@ -128,7 +128,6 @@ void MakeCdvdSearchPath(s8* full, s8* fname);
int CdvdRead(char * filename, int size, u_char * * lpBuf, u_char bSynch, int index, int filetype, u_int align); int CdvdRead(char * filename, int size, u_char * * lpBuf, u_char bSynch, int index, int filetype, u_int align);
u_int CdvdAsyncProc(int bDraw); u_int CdvdAsyncProc(int bDraw);
void CdvdBackReadProc(void); void CdvdBackReadProc(void);
int CdvdAsync(void);
int CdvdCheckAsyncBusy(void); int CdvdCheckAsyncBusy(void);
#endif // CDVD_H #endif // CDVD_H
+2 -2
View File
@@ -11,9 +11,9 @@ typedef struct _EVENT {
void (* InitFunc)(); // offset 0x0, size 0x4 void (* InitFunc)(); // offset 0x0, size 0x4
void (* PlayFunc)(); // offset 0x4, size 0x4 void (* PlayFunc)(); // offset 0x4, size 0x4
void (* ActiFunc)(); // offset 0x8, size 0x4 void (* ActiFunc)(); // offset 0x8, size 0x4
int State[10] __attribute__ ((aligned(16))); // offset 0xC, size 0x28 int State[10]; // offset 0xC, size 0x28
MDLMNG* lpMdl[10]; // offset 0x34, size 0x28 MDLMNG* lpMdl[10]; // offset 0x34, size 0x28
} EVENT; }__attribute__ ((aligned(16))) EVENT;
void SetEventModelDrawAndHit(MDLMNG* lpMdl, u_char OnOff); void SetEventModelDrawAndHit(MDLMNG* lpMdl, u_char OnOff);
void EventEneHitCheck(MDLMNG* lpEne); void EventEneHitCheck(MDLMNG* lpEne);
+62 -5
View File
@@ -1,9 +1,66 @@
#include "common.h" #include "Event0001.h"
#include "Camera.h"
#include "KuonMsg.h"
#include "Game.h"
#include "Script.h"
INCLUDE_ASM("config/asm/nonmatchings/cs4/Seimei/src/Event0001", ActiS0001Event000); static void InitS0001Event000(EVENT* lpEvent);
static void PlayS0001Event000(EVENT* lpEvent);
static void ActiS0001Event000(EVENT* lpEvent, u_int Id);
INCLUDE_ASM("config/asm/nonmatchings/cs4/Seimei/src/Event0001", PlayS0001Event000); void SetEventFuncS0001(void) {
EventMngSt->InitFunc = InitS0001Event000;
EventMngSt->PlayFunc = PlayS0001Event000;
EventMngSt->ActiFunc = ActiS0001Event000;
}
INCLUDE_ASM("config/asm/nonmatchings/cs4/Seimei/src/Event0001", InitS0001Event000); static void InitS0001Event000(EVENT* lpEvent) {
INCLUDE_ASM("config/asm/nonmatchings/cs4/Seimei/src/Event0001", SetEventFuncS0001); if (GameSt.PlayerId != 0 || CheckEventFlag(0x6D6)) {
SetEventFlag(0x6D6);
lpEvent->State[0] = 2;
}
else if (!CheckEventFlag(0x7A)) {
lpEvent->State[0] = 2;
} else {
lpEvent->State[0] = 0;
}
}
static void PlayS0001Event000(EVENT* lpEvent) {
if (lpEvent->State[0] != 1) return;
if (++lpEvent->State[1] < 0x3C) return;
lpEvent->State[0] = 2;
lpEvent->State[1] = 0;
SetEventFlag(0x6D6);
SetCamCtrlMode(0);
}
static void ActiS0001Event000(EVENT* lpEvent, u_int Id) {
switch (Id) {
case 1:
if (lpEvent->State[0] == 0) {
EasyEneAppear(1);
lpEvent->State[0] = 1;
lpEvent->State[1] = 0;
SetCamCtrlMode(1);
SetCameraPos((float[]){-11.7f, -2.8f, 9.6999998f, 1.0f});
SetCameraAng((float[]){-0.26174998f, -0.087249994f, 0.0f, 0.0f});
}
else {
KnMsgMng_SendMsg(0x61ACD);
}
}
}
+4
View File
@@ -2,7 +2,11 @@
#define EVENT0001_H #define EVENT0001_H
#include "typedefs.h" #include "typedefs.h"
#include "Event.h"
void ActiS0001Event000(EVENT* lpEvent, u_int Id);
void PlayS0001Event000(EVENT* lpEvent);
void InitS0001Event000(EVENT* lpEvent);
void SetEventFuncS0001(void); void SetEventFuncS0001(void);
#endif // EVENT0001_H #endif // EVENT0001_H
+2
View File
@@ -14,6 +14,8 @@
unsigned char RootPath[128]; // size: 0x80, address: 0x325530 unsigned char RootPath[128]; // size: 0x80, address: 0x325530
unsigned char ScePath[128]; // size: 0x80, address: 0x3254B0 unsigned char ScePath[128]; // size: 0x80, address: 0x3254B0
unsigned int GlobalLoadTimer;
void InitFileSystem() { void InitFileSystem() {
/* anonymous block */ /* anonymous block */
// Range: 0x138C20 -> 0x138C78 // Range: 0x138C20 -> 0x138C78
+4
View File
@@ -1,5 +1,6 @@
#ifndef KUON_MSG_H #ifndef KUON_MSG_H
#define KUON_MSG_H #define KUON_MSG_H
#include "common.h" #include "common.h"
int KnMsgMng_Update(); int KnMsgMng_Update();
@@ -7,4 +8,7 @@ int KnMsgMng_Draw();
u_short * * KnMsgMng_GetMapNameMsg(); u_short * * KnMsgMng_GetMapNameMsg();
u_short * KnMsgMng_GetMsgStr(int msg_id /* r16 */); u_short * KnMsgMng_GetMsgStr(int msg_id /* r16 */);
int KnMsgMng_MsgAllClear(); int KnMsgMng_MsgAllClear();
int KnMsgMng_SendMsg(int id);
#endif // KUON_MSG_H #endif // KUON_MSG_H