Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
23e46e9421 | ||
|
|
d178f42037 | ||
|
|
11edf2c36a | ||
|
|
a12e3bc31e | ||
|
|
aeee7ce000 | ||
|
|
ec0fe4249a | ||
|
|
687af5ace6 | ||
|
|
1c1cba91cd |
+2
-2
@@ -305,7 +305,7 @@ segments:
|
||||
- [0x0807A0, asmtu, cs4/Seimei/src/Fade]
|
||||
- [0x081180, asmtu, cs4/Seimei/src/Blast]
|
||||
- [0x081760, asmtu, cs4/Seimei/src/Light]
|
||||
- [0x081910, c, cs4/Seimei/src/Cdvd]
|
||||
- [0x081910, asmtu, cs4/Seimei/src/Cdvd]
|
||||
- [0x0820E0, asmtu, cs4/Seimei/src/Filter]
|
||||
- [0x085190, asmtu, cs4/Seimei/src/msg_util]
|
||||
- [0x085610, asmtu, cs4/Seimei/src/DrawOT]
|
||||
@@ -440,7 +440,7 @@ segments:
|
||||
- [0x115080, asmtu, cs4/Seimei/src/sfx/SfxScriptIF]
|
||||
- [0x115300, asmtu, cs4/Seimei/src/Event0032]
|
||||
- [0x115610, asmtu, cs4/Seimei/src/E023Act]
|
||||
- [0x115620, asmtu, cs4/Seimei/src/Event0001]
|
||||
- [0x115620, c, cs4/Seimei/src/Event0001]
|
||||
- [0x1157F0, asmtu, cs4/Seimei/src/P036Act]
|
||||
- [0x115910, asmtu, cs4/Seimei/src/Event0085]
|
||||
- [0x115B70, asmtu, unklib_00215AF0]
|
||||
|
||||
+23055
File diff suppressed because it is too large
Load Diff
@@ -18,4 +18,9 @@ void SetCamEnv(CAMINFO * CAMINFO, int Index);
|
||||
CAMINFO * GetGameCamInfo();
|
||||
void InitCamera();
|
||||
|
||||
void SetCamCtrlMode(u_int mode);
|
||||
|
||||
void SetCameraPos(float* pos);
|
||||
void SetCameraAng(float* ang);
|
||||
|
||||
#endif // CAMERA_H
|
||||
+65
-12
@@ -3,15 +3,69 @@
|
||||
#include "ee/eeregs.h"
|
||||
#include "Memory.h"
|
||||
|
||||
unsigned int GlobalLoadTimer; // size: 0x4, address: 0x257894
|
||||
LPSETCDVD* lpSetCdvd;
|
||||
LPLASTCDVD * lpLastCdvd;
|
||||
LPCDVDREAD* lpCdvdRead;
|
||||
CDVDREADST CdvdReadSt[256];
|
||||
static u_int CdvdAsync(void);
|
||||
|
||||
|
||||
|
||||
|
||||
/*? fsmfstrm_AllocStreamBuffer(?, u8*, s32, ?);
|
||||
s32 fsmfstrm_AttachSector(?, u32, s32, ?);
|
||||
s32 fsmfstrm_DmaReadSyncBlock(?, ?);
|
||||
? fsmfstrm_SetReadStart(?, ?);*/
|
||||
|
||||
|
||||
#define SECTOR_SIZE (2048)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void InitCdvdRead(void) {
|
||||
memset(CdvdReadSt, 0, 0x14C00);
|
||||
memset(CdvdReadSt, 0, sizeof(CdvdReadSt));
|
||||
|
||||
lpSetCdvd = (LPSETCDVD* ) 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)
|
||||
|
||||
*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 aiores = 0; /* r29+0x18 */
|
||||
int size;
|
||||
|
||||
if ((void*)lpCdvdRead == (void*)lpSetCdvd) return 0;
|
||||
|
||||
switch (lpCdvdRead->state) {
|
||||
@@ -406,9 +459,9 @@ int CdvdAsync(void) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static inline char* foo() {
|
||||
printf("\\%s;1");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -117,10 +117,10 @@ typedef struct /* @anon3 */ {
|
||||
} LPCDVD; // size: 0x4, address: 0x257528
|
||||
|
||||
extern unsigned int GlobalLoadTimer; // size: 0x4, address: 0x257894
|
||||
extern LPSETCDVD* lpSetCdvd;
|
||||
extern LPLASTCDVD * lpLastCdvd;
|
||||
extern LPCDVDREAD* lpCdvdRead;
|
||||
extern CDVDREADST CdvdReadSt[256];
|
||||
static CDVDREADST CdvdReadSt[256];
|
||||
static LPSETCDVD* lpSetCdvd = (LPSETCDVD* )CdvdReadSt;
|
||||
static LPLASTCDVD* lpLastCdvd = (LPLASTCDVD* )CdvdReadSt;
|
||||
static LPCDVDREAD* lpCdvdRead = (LPCDVDREAD* )CdvdReadSt;
|
||||
|
||||
void InitCdvdRead(void);
|
||||
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);
|
||||
u_int CdvdAsyncProc(int bDraw);
|
||||
void CdvdBackReadProc(void);
|
||||
int CdvdAsync(void);
|
||||
int CdvdCheckAsyncBusy(void);
|
||||
|
||||
#endif // CDVD_H
|
||||
|
||||
@@ -11,9 +11,9 @@ typedef struct _EVENT {
|
||||
void (* InitFunc)(); // offset 0x0, size 0x4
|
||||
void (* PlayFunc)(); // offset 0x4, 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
|
||||
} EVENT;
|
||||
}__attribute__ ((aligned(16))) EVENT;
|
||||
|
||||
void SetEventModelDrawAndHit(MDLMNG* lpMdl, u_char OnOff);
|
||||
void EventEneHitCheck(MDLMNG* lpEne);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
#define EVENT0001_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);
|
||||
|
||||
#endif // EVENT0001_H
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
unsigned char RootPath[128]; // size: 0x80, address: 0x325530
|
||||
unsigned char ScePath[128]; // size: 0x80, address: 0x3254B0
|
||||
|
||||
unsigned int GlobalLoadTimer;
|
||||
|
||||
void InitFileSystem() {
|
||||
/* anonymous block */
|
||||
// Range: 0x138C20 -> 0x138C78
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#ifndef KUON_MSG_H
|
||||
#define KUON_MSG_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
int KnMsgMng_Update();
|
||||
@@ -7,4 +8,7 @@ int KnMsgMng_Draw();
|
||||
u_short * * KnMsgMng_GetMapNameMsg();
|
||||
u_short * KnMsgMng_GetMsgStr(int msg_id /* r16 */);
|
||||
int KnMsgMng_MsgAllClear();
|
||||
|
||||
int KnMsgMng_SendMsg(int id);
|
||||
|
||||
#endif // KUON_MSG_H
|
||||
Reference in New Issue
Block a user