Add definitions for flooring & walls, minor m_card work

This commit is contained in:
Cuyler36
2024-02-25 12:05:58 -05:00
parent e08ce97f5e
commit c70a6f0b52
19 changed files with 6930 additions and 5819 deletions
+84
View File
@@ -0,0 +1,84 @@
#ifndef CARD_H
#define CARD_H
#include "types.h"
#include "dolphin/card.h"
#include "dolphin/dvd.h"
#include "dolphin/os/OSAlarm.h"
#include "dolphin/os/OSThread.h"
#include "dolphin/dsp.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct CARDDir {
// total size: 0x40
u8 gameName[4]; // offset 0x0, size 0x4
u8 company[2]; // offset 0x4, size 0x2
u8 _padding0; // offset 0x6, size 0x1
u8 bannerFormat; // offset 0x7, size 0x1
u8 fileName[CARD_FILENAME_MAX]; // offset 0x8, size 0x20
u32 time; // offset 0x28, size 0x4
u32 iconAddr; // offset 0x2C, size 0x4
u16 iconFormat; // offset 0x30, size 0x2
u16 iconSpeed; // offset 0x32, size 0x2
u8 permission; // offset 0x34, size 0x1
u8 copyTimes; // offset 0x35, size 0x1
u16 startBlock; // offset 0x36, size 0x2
u16 length; // offset 0x38, size 0x2
u8 _padding1[2]; // offset 0x3A, size 0x2
u32 commentAddr; // offset 0x3C, size 0x4
} CARDDir;
typedef struct CARDControl {
// total size: 0x110
int attached; // offset 0x0, size 0x4
s32 result; // offset 0x4, size 0x4
u16 size; // offset 0x8, size 0x2
u16 pageSize; // offset 0xA, size 0x2
s32 sectorSize; // offset 0xC, size 0x4
u16 cBlock; // offset 0x10, size 0x2
u16 vendorID; // offset 0x12, size 0x2
s32 latency; // offset 0x14, size 0x4
u8 id[12]; // offset 0x18, size 0xC
int mountStep; // offset 0x24, size 0x4
int formatStep; // offset 0x28, size 0x4
u32 scramble; // offset 0x2C, size 0x4
DSPTaskInfo task; // offset 0x30, size 0x50
void* workArea; // offset 0x80, size 0x4
CARDDir* currentDir; // offset 0x84, size 0x4
u16* currentFat; // offset 0x88, size 0x4
OSThreadQueue threadQueue; // offset 0x8C, size 0x8
u8 cmd[9]; // offset 0x94, size 0x9
s32 cmdlen; // offset 0xA0, size 0x4
u32 mode; // offset 0xA4, size 0x4
int retry; // offset 0xA8, size 0x4
int repeat; // offset 0xAC, size 0x4
u32 addr; // offset 0xB0, size 0x4
void* buffer; // offset 0xB4, size 0x4
s32 xferred; // offset 0xB8, size 0x4
u16 freeNo; // offset 0xBC, size 0x2
u16 startBlock; // offset 0xBE, size 0x2
CARDFileInfo* fileInfo; // offset 0xC0, size 0x4
CARDCallback extCallback; // offset 0xC4, size 0x4
CARDCallback txCallback; // offset 0xC8, size 0x4
CARDCallback exiCallback; // offset 0xCC, size 0x4
CARDCallback apiCallback; // offset 0xD0, size 0x4
CARDCallback xferCallback; // offset 0xD4, size 0x4
CARDCallback eraseCallback; // offset 0xD8, size 0x4
CARDCallback unlockCallback; // offset 0xDC, size 0x4
OSAlarm alarm; // offset 0xE0, size 0x28
u32 cid; // offset 0x108, size 0x4
const DVDDiskID* diskID; // offset 0x10C, size 0x4
} CARDControl;
s32 __CARDGetStatusEx(s32 chan, s32 fileNo, CARDDir* dirent);
s32 __CARDSetStatusExAsync(s32 chan, s32 fileNo, CARDDir* dirent, CARDCallback callback);
s32 __CARDSetStatusEx(s32 chan, s32 fileNo, CARDDir* dirent);
#ifdef __cplusplus
}
#endif
#endif
+13 -3
View File
@@ -1,8 +1,18 @@
#ifndef SEQSETUP_H
#define SEQSETUP_H
#include "types.h"
extern "C"{
void Jaq_Reset(void);
}
#ifdef __cplusplus
extern "C" {
#endif
typedef struct seqp seqp; // TODO
void Jaq_Reset(void);
void Jaq_SetSeqData(seqp* seqp, u8* param_2, u32 param_3, int param_4);
#ifdef __cplusplus
};
#endif
#endif
+28 -2
View File
@@ -11,9 +11,34 @@
extern "C" {
#endif
enum {
mCD_ERROR_NOT_ENABLED, // N [not enabled?]
mCD_ERROR_AREA, // A [area?]
mCD_ERROR_WRITE, // W [write]
mCD_ERROR_READ, // R [read?]
mCD_ERROR_CHECKSUM, // C [checksum]
mCD_ERROR_OUTDATED, // O [outdated]
mCD_ERROR_CREATE, // c [create]
mCD_ERROR_NUM
};
enum {
mCD_SPACE_BG_GET_SLOT,
mCD_SPACE_BG_MAIN,
mCD_SPACE_BG_NUM
};
#define mCD_RESULT_ERROR -1
#define mCD_RESULT_BUSY 0
#define mCD_RESULT_SUCCESS 1
#define mCD_MEMCARD_SECTORSIZE 0x2000
typedef struct {
mLd_land_info_c land;
PersonalID_c pid[PLAYER_NUM];
mLd_land_info_c land;
PersonalID_c pid[PLAYER_NUM];
} mCD_persistent_data_c;
extern s32 mCD_GetThisLandSlotNo_code(int* player_no, s32* slot_card_results);
@@ -28,6 +53,7 @@ extern void mCD_toNextLand();
extern int mCD_EraseBrokenLand_bg(void*);
extern int mCD_card_format_bg(u8);
#ifdef __cplusplus
}
#endif
+11
View File
@@ -4,6 +4,8 @@
#include "types.h"
#include "m_actor_type.h"
#include "m_collision_bg.h"
#include "m_name_table_floor_decl.h"
#include "m_name_table_wall_decl.h"
/* TODO: these defintions are likely included from an auto-gen source */
@@ -11,6 +13,8 @@
extern "C" {
#endif
// clang-format off
enum {
NAME_TYPE_ITEM0, /* Scenery items */
NAME_TYPE_FTR0, /* Furniture 0 */
@@ -157,6 +161,11 @@ typedef struct offset_table_s {
#define HUKUBUKURO_NUM 2
#define KABU_NUM 4
// #define WALL_MY_ORIG_START (72)
// #define WALL_MY_ORIG_NUM (8)
// #define WALL_MY_ORIG_END ((WALL_MY_ORIG_START + WALL_MY_ORIG_NUM) - 1)
// #define WALL_IS_MY_ORIG(idx) ((idx) >= WALL_MY_ORIG_START && (idx) <= WALL_MY_ORIG_END)
#define PAPER_UNIQUE_NUM 64
#define PAINT_NUM 12
#define FLOWER_NUM 9
@@ -2732,6 +2741,8 @@ extern int mNT_check_unknown(mActor_name_t item_no);
#define mNT_IS_RESERVE(n) ((n) >= SIGN00 && (n) <= SIGN20)
// clang-format on
#ifdef __cplusplus
}
#endif
+123
View File
@@ -0,0 +1,123 @@
#ifndef M_NAME_TABLE_FLOOR_DECL_H
#define M_NAME_TABLE_FLOOR_DECL_H
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define FLOOR_NPC000 0
#define FLOOR_NPC001 1
#define FLOOR_NPC002 2
#define FLOOR_NPC003 3
#define FLOOR_NPC004 4
#define FLOOR_NPC005 5
#define FLOOR_NPC006 6
#define FLOOR_NPC007 7
#define FLOOR_NPC008 8
#define FLOOR_NPC009 9
#define FLOOR_NPC010 10
#define FLOOR_NPC011 11
#define FLOOR_NPC012 12
#define FLOOR_NPC013 13
#define FLOOR_NPC014 14
#define FLOOR_NPC015 15
#define FLOOR_NPC016 16
#define FLOOR_NPC017 17
#define FLOOR_NPC018 18
#define FLOOR_NPC019 19
#define FLOOR_NPC020 20
#define FLOOR_NPC021 21
#define FLOOR_NPC022 22
#define FLOOR_NPC023 23
#define FLOOR_NPC024 24
#define FLOOR_NPC025 25
#define FLOOR_NPC026 26
#define FLOOR_NPC027 27
#define FLOOR_NPC028 28
#define FLOOR_NPC029 29
#define FLOOR_NPC030 30
#define FLOOR_NPC031 31
#define FLOOR_NPC032 32
#define FLOOR_NPC033 33
#define FLOOR_NPC034 34
#define FLOOR_NPC035 35
#define FLOOR_NPC036 36
#define FLOOR_NPC037 37
#define FLOOR_NPC038 38
#define FLOOR_NPC039 39
#define FLOOR_NPC040 40
#define FLOOR_NPC041 41
#define FLOOR_NPC042 42
#define FLOOR_NPC043 43
#define FLOOR_NPC044 44
#define FLOOR_NPC045 45
#define FLOOR_NPC046 46
#define FLOOR_NPC047 47
#define FLOOR_NPC048 48
#define FLOOR_NPC049 49
#define FLOOR_NPC050 50
#define FLOOR_NPC051 51
#define FLOOR_NPC052 52
#define FLOOR_NPC053 53
#define FLOOR_NPC054 54
#define FLOOR_NPC055 55
#define FLOOR_NPC056 56
#define FLOOR_NPC057 57
#define FLOOR_NPC058 58
#define FLOOR_NPC059 59
#define FLOOR_NPC060 60
#define FLOOR_NPC061 61
#define FLOOR_NPC062 62
#define FLOOR_NPC063 63
#define FLOOR_NPC064 64
#define FLOOR_NPC065 65
#define FLOOR_NPC066 66
#define FLOOR_NPC_END FLOOR_NPC066
#define FLOOR_ETC_START (FLOOR_NPC_END + 1)
#define FLOOR_SHOP1 (FLOOR_ETC_START + 0)
#define FLOOR_SHOP2 (FLOOR_ETC_START + 1)
#define FLOOR_SHOP3 (FLOOR_ETC_START + 2)
#define FLOOR_SHOP4_1 (FLOOR_ETC_START + 3)
#define FLOOR_SHOP4_2 (FLOOR_ETC_START + 3)
#define FLOOR_PLAYER_ROOM_END (FLOOR_SHOP4_2 + 1)
#define FLOOR_POST_OFFICE (FLOOR_ETC_START + 4)
#define FLOOR_POLICE_BOX (FLOOR_ETC_START + 5)
#define FLOOR_BUGGY (FLOOR_ETC_START + 6)
#define FLOOR_BROKER_SHOP (FLOOR_ETC_START + 7)
#define FLOOR_KAMAKURA (FLOOR_ETC_START + 8)
#define FLOOR_MUSEUM_ENTRANCE (FLOOR_ETC_START + 9)
#define FLOOR_MUSEUM_FOSSIL (FLOOR_ETC_START + 10)
#define FLOOR_MUSEUM_PICTURE (FLOOR_ETC_START + 11)
#define FLOOR_MUSEUM_INSECT (FLOOR_ETC_START + 12)
#define FLOOR_MUSEUM_FISH (FLOOR_ETC_START + 13)
#define FLOOR_MUSEUM_NEEDLEWORK (FLOOR_ETC_START + 14)
#define FLOOR_BASEMENT (FLOOR_ETC_START + 15)
#define FLOOR_ORIGINAL_SE (FLOOR_ETC_START + 16)
#define FLOOR_LIGHTHOUSE_SE (FLOOR_ETC_START + 17)
#define FLOOR_TENT_SE (FLOOR_ETC_START + 18)
#define FLOOR_ETC_END (FLOOR_ETC_START + 19)
#define FLOOR_MY_ORIG_START (FLOOR_ETC_END + 1)
#define FLOOR_MY_ORIG0 (FLOOR_MY_ORIG_START + 0)
#define FLOOR_MY_ORIG1 (FLOOR_MY_ORIG_START + 1)
#define FLOOR_MY_ORIG2 (FLOOR_MY_ORIG_START + 2)
#define FLOOR_MY_ORIG3 (FLOOR_MY_ORIG_START + 3)
#define FLOOR_MY_ORIG4 (FLOOR_MY_ORIG_START + 4)
#define FLOOR_MY_ORIG5 (FLOOR_MY_ORIG_START + 5)
#define FLOOR_MY_ORIG6 (FLOOR_MY_ORIG_START + 6)
#define FLOOR_MY_ORIG7 (FLOOR_MY_ORIG_START + 7)
#define FLOOR_MY_ORIG_END FLOOR_MY_ORIG7
#define FLOOR_ALL_NUM (FLOOR_MY_ORIG_END + 1)
#define FLOOR_IS_MY_ORIG(idx) ((idx) >= FLOOR_MY_ORIG_START && (idx) <= FLOOR_MY_ORIG_END)
#ifdef __cplusplus
}
#endif
#endif
+106
View File
@@ -0,0 +1,106 @@
#ifndef M_NAME_TABLE_WALL_DECL_H
#define M_NAME_TABLE_WALL_DECL_H
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define WALL_NPC000 0
#define WALL_NPC001 1
#define WALL_NPC002 2
#define WALL_NPC003 3
#define WALL_NPC004 4
#define WALL_NPC005 5
#define WALL_NPC006 6
#define WALL_NPC007 7
#define WALL_NPC008 8
#define WALL_NPC009 9
#define WALL_NPC010 10
#define WALL_NPC011 11
#define WALL_NPC012 12
#define WALL_NPC013 13
#define WALL_NPC014 14
#define WALL_NPC015 15
#define WALL_NPC016 16
#define WALL_NPC017 17
#define WALL_NPC018 18
#define WALL_NPC019 19
#define WALL_NPC020 20
#define WALL_NPC021 21
#define WALL_NPC022 22
#define WALL_NPC023 23
#define WALL_NPC024 24
#define WALL_NPC025 25
#define WALL_NPC026 26
#define WALL_NPC027 27
#define WALL_NPC028 28
#define WALL_NPC029 29
#define WALL_NPC030 30
#define WALL_NPC031 31
#define WALL_NPC032 32
#define WALL_NPC033 33
#define WALL_NPC034 34
#define WALL_NPC035 35
#define WALL_NPC036 36
#define WALL_NPC037 37
#define WALL_NPC038 38
#define WALL_NPC039 39
#define WALL_NPC040 40
#define WALL_NPC041 41
#define WALL_NPC042 42
#define WALL_NPC043 43
#define WALL_NPC044 44
#define WALL_NPC045 45
#define WALL_NPC046 46
#define WALL_NPC047 47
#define WALL_NPC048 48
#define WALL_NPC049 49
#define WALL_NPC050 50
#define WALL_NPC051 51
#define WALL_NPC052 52
#define WALL_NPC053 53
#define WALL_NPC054 54
#define WALL_NPC055 55
#define WALL_NPC056 56
#define WALL_NPC057 57
#define WALL_NPC058 58
#define WALL_NPC059 59
#define WALL_NPC060 60
#define WALL_NPC061 61
#define WALL_NPC062 62
#define WALL_NPC063 63
#define WALL_NPC064 64
#define WALL_NPC065 65
#define WALL_NPC066 66
#define WALL_NPC_END WALL_NPC066
#define WALL_ETC_START (WALL_NPC_END + 1)
#define WALL_SHOP1 (WALL_ETC_START + 0)
#define WALL_SHOP2 (WALL_ETC_START + 1)
#define WALL_SHOP3 (WALL_ETC_START + 2)
#define WALL_SHOP4_1 (WALL_ETC_START + 3)
#define WALL_SHOP4_2 (WALL_ETC_START + 3)
#define WALL_ETC_END (WALL_SHOP4_2 + 1)
#define WALL_MY_ORIG_START (WALL_ETC_END + 1)
#define WALL_MY_ORIG0 (WALL_MY_ORIG_START + 0)
#define WALL_MY_ORIG1 (WALL_MY_ORIG_START + 1)
#define WALL_MY_ORIG2 (WALL_MY_ORIG_START + 2)
#define WALL_MY_ORIG3 (WALL_MY_ORIG_START + 3)
#define WALL_MY_ORIG4 (WALL_MY_ORIG_START + 4)
#define WALL_MY_ORIG5 (WALL_MY_ORIG_START + 5)
#define WALL_MY_ORIG6 (WALL_MY_ORIG_START + 6)
#define WALL_MY_ORIG7 (WALL_MY_ORIG_START + 7)
#define WALL_MY_ORIG_END WALL_MY_ORIG7
#define WALL_ALL_NUM (WALL_MY_ORIG_END + 1)
#define WALL_IS_MY_ORIG(idx) ((idx) >= WALL_MY_ORIG_START && (idx) <= WALL_MY_ORIG_END)
#ifdef __cplusplus
}
#endif
#endif