Last active
March 1, 2025 20:18
-
-
Save emoose/c0155179b42b92725c48e754291eab18 to your computer and use it in GitHub Desktop.
SH1 things
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// struct SH_SYS at 0x800BC728, size 0x5D8 | |
// struct SYS_W at 0x800B9FC0, size 0x2768 | |
struct SH_SYS // 0x800BC728, size 0x5D8 | |
{ | |
ShControllerCfg controller; | |
char screen_x_1C; | |
char screen_y_1D; | |
unsigned __int8 sound_type_1E; | |
unsigned __int8 volume_BGM_1F; | |
unsigned __int8 volume_SE_20; | |
unsigned __int8 vib_enabled_21; | |
unsigned __int8 brightness_22; | |
unsigned __int8 weapon_ctrl_23; | |
unsigned __int8 blood_color_24; | |
unsigned __int8 auto_load_25; | |
unsigned __int8 unk_26; | |
unsigned __int8 extra_options_enabled_27; | |
unsigned __int8 view_ctrl_28; | |
unsigned __int8 view_mode_29; | |
unsigned __int8 retreat_turn_2A; | |
unsigned __int8 walkrun_ctrl_2B; | |
unsigned __int8 auto_aiming_2C; | |
char bullet_adjust_2D; | |
__int16 field_2E[1]; | |
int field_30[2]; | |
ControllerData Controllers_38[2]; | |
int field_90[144]; | |
int field_2D0; | |
int field_2D4[11]; | |
int field_300[2]; | |
char field_308[3]; | |
char field_30B; | |
ShSaveGame savegame_30C; | |
u_short gs_x_res_588; | |
u_short gs_y_res_58A; | |
char gs_clear_r_58C; | |
char gs_clear_g_58D; | |
char gs_clear_b_58E; | |
char field_58F; | |
ShMainLoopState0 MainLoopPrevState_590; | |
ShMainLoopState0 MainLoop_State0_594; | |
int MainLoop_State1_598; | |
int MainLoop_State2_59C; | |
int MainLoop_State3_mb_5A0; | |
char field_5A4[4]; | |
int field_5A8; | |
int field_5AC; | |
u_char unk_5B0; | |
u_char field_5B1; | |
char field_5B2; | |
char field_5B3; | |
ControllerPacket ControllerPort1_temp_5B4; | |
}; | |
struct SYS_W // 0x800B9FC0, size 0x2768 | |
{ | |
char field_0[2]; | |
char field_2; | |
char field_3; | |
char field_4[2]; | |
__int16 field_6; | |
ShInGameState0 InGameState0_8; | |
int InGameState1_C; | |
int field_10; | |
int field_14; | |
int field_18; | |
int FrameCounter_1C; | |
int FrameCounter_20; | |
int CurStateFrameCount_24; | |
int field_28; | |
int field_2C; | |
int field_30; | |
char field_34[4]; | |
int field_38; | |
int field_3C; | |
int field_40; | |
char field_44[3]; | |
char field_47; | |
u_char field_48; | |
u_char field_49; | |
char field_4A; | |
char field_4B; | |
MainCharacter player_4C; | |
SubCharacter other_char_1A0[6]; | |
GsCOORDINATE2 coord_890[2]; | |
GsCOORDINATE2 hero_neck_930; | |
GsCOORDINATE2 coord_980[8]; | |
GsCOORDINATE2 coord_C00[12]; | |
GsCOORDINATE2 coord_FC0[60]; | |
char field_2280; | |
char field_2281; | |
char field_2282; | |
char field_2283; | |
int field_2284[2]; | |
u_int field_228C; | |
int chara_flags_2290[2]; | |
int AreaLoadType_2298; | |
int field_229C; | |
int flags_22A0; | |
int main_status_22A4; | |
int field_22A8[20]; | |
GsCOORDINATE2 coord_22F8; | |
char field_2348; | |
char field_2349; | |
char field_234A; | |
char field_234B; | |
int field_234C; | |
char field_2350; | |
u_char cur_item_idx_mb_2351; | |
char field_2352; | |
char field_2353; | |
char field_2354; | |
char field_2355; | |
char field_2356; | |
char field_2357; | |
char field_2358; | |
char field_2359; | |
char field_235A; | |
char field_235B; | |
GsCOORDINATE2 *field_235C; | |
VECTOR3 field_2360; | |
GsCOORDINATE2 *field_236C; | |
__int16 field_2370; | |
__int16 field_2372; | |
__int16 field_2374; | |
__int16 field_2376; | |
__int16 field_2378; | |
__int16 cam_ang_y_237A; | |
__int16 cam_ang_z_237C; | |
__int16 field_237E; | |
int cam_r_xz_2380; | |
int cam_y_2384; | |
int field_2388; | |
int field_238C; | |
int field_2390; | |
int field_2394; | |
int field_2398; | |
char field_239C; | |
char field_239D; | |
char field_239E; | |
char field_239F; | |
__int16 field_23A0; | |
__int16 field_23A2; | |
char flags_23A4; | |
char field_23A5[3]; | |
int field_23A8[11]; | |
int field_23D4; | |
char flags_23D8; | |
char field_23D9[3]; | |
int field_23DC[4]; | |
int fog_params_23EC[7]; | |
int field_2408; | |
int field_240C[12]; | |
int field_243C; | |
int field_2440[13]; | |
int field_2474[13]; | |
int field_24A8[13]; | |
int flags_24DC; | |
u_char unk_24E0[48]; | |
int field_2510; | |
s_GameWork_2514 struct_2514; | |
int field_2534[4]; | |
int field_2544[129]; | |
__int16 field_2748; | |
int unk_274C[3]; | |
__int16 field_2758; | |
__int16 unk_275A; | |
int field_275C; | |
int field_2760; | |
int field_2764; | |
}; | |
enum ShMainLoopState0 : __int32 | |
{ | |
Unk0 = 0x0, | |
KonamiLogo = 0x1, | |
KCETLogo = 0x2, | |
StartMovieIntro = 0x3, | |
Unk4 = 0x4, | |
MovieIntroAlternate = 0x5, | |
MovieIntro = 0x6, | |
MainMenu = 0x7, | |
Unk8 = 0x8, | |
MovieOpening = 0x9, | |
LoadScreen = 0xA, | |
InGame = 0xB, | |
MapEvent = 0xC, | |
ReturnToGameplay = 0xD, | |
StatusScreen = 0xE, | |
MapScreen = 0xF, | |
Unk10 = 0x10, | |
MovieEnding = 0x11, | |
OptionScreen = 0x12, | |
LoadStatusScreen = 0x13, | |
LoadMapScreen = 0x14, | |
Unk15 = 0x15, | |
NumStates = 0x16, | |
}; | |
struct ShControllerCfg | |
{ | |
unsigned __int16 enter; | |
unsigned __int16 cancel; | |
unsigned __int16 skip; | |
unsigned __int16 action; | |
unsigned __int16 aim; | |
unsigned __int16 light; | |
unsigned __int16 run; | |
unsigned __int16 view; | |
unsigned __int16 step_l; | |
unsigned __int16 step_r; | |
unsigned __int16 pause; | |
unsigned __int16 item; | |
unsigned __int16 map; | |
unsigned __int16 option; | |
}; | |
struct AnalogPadData | |
{ | |
unsigned __int8 status; | |
unsigned __int8 data_format; | |
unsigned __int16 digitalButtons; | |
unsigned __int8 right_x; | |
unsigned __int8 right_y; | |
unsigned __int8 left_x; | |
unsigned __int8 left_y; | |
}; | |
enum __bitmask PadButton : __int32 | |
{ | |
PadSelect = 0x1, | |
PadL3 = 0x2, | |
PadR3 = 0x4, | |
PadStart = 0x8, | |
PadDpadUp = 0x10, | |
PadDpadRight = 0x20, | |
PadDpadDown = 0x40, | |
PadDpadLeft = 0x80, | |
PadL2 = 0x100, | |
PadR2 = 0x200, | |
PadL1 = 0x400, | |
PadR1 = 0x800, | |
PadTriangle = 0x1000, | |
PadCircle = 0x2000, | |
PadCross = 0x4000, | |
PadSquare = 0x8000, | |
LSUp2 = 0x10000, | |
LSRight2 = 0x20000, | |
LSDown2 = 0x40000, | |
LSLeft2 = 0x80000, | |
RSUp = 0x100000, | |
RSRight = 0x200000, | |
RSDown = 0x400000, | |
RSLeft = 0x800000, | |
LSUp = 0x1000000, | |
LSRight = 0x2000000, | |
LSDown = 0x4000000, | |
LSLeft = 0x8000000, | |
}; | |
struct ControllerData | |
{ | |
AnalogPadData AnalogPad; | |
int field_8; | |
PadButton btns_held_C; | |
PadButton btns_new_10; | |
char field_14[4]; | |
PadButton field_18; | |
int field_1C; | |
char field_20; | |
char field_21; | |
char field_22; | |
char field_23; | |
char field_24; | |
char field_25; | |
char field_26; | |
char field_27; | |
int field_28; | |
}; | |
struct ShInventoryItem | |
{ | |
u_char id; | |
u_char count; | |
u_char unk_2; | |
u_char unk_3; | |
}; | |
struct ShSaveGame | |
{ | |
ShInventoryItem items_0[40]; | |
char field_A0; | |
char field_A1[3]; | |
char cur_map_overlay_num_A4; | |
char field_A5; | |
__int16 savegame_count_A6; | |
char savegame_name_A8; | |
u_char curMapIndex_A9; | |
char field_AA; | |
u_char field_AB; | |
u_int flags_AC; | |
int field_B0[45]; | |
int field_164; | |
int event_flags_168[6]; | |
int field_180[2]; | |
int field_188; | |
int field_18C; | |
int field_190[4]; | |
int field_1A0; | |
int field_1A4[12]; | |
int map_flags_1D4[2]; | |
int field_1DC; | |
int field_1E0[22]; | |
int field_238; | |
__int16 field_23C; | |
char field_23E; | |
char field_23F; | |
int player_fieldB0_240; | |
int player_pos_x_244; | |
__int16 player_rot_yaw_248; | |
char field_24A; | |
char field_24B; | |
int player_pos_z_24C; | |
int game_play_timer_250; | |
int field_254; | |
int field_258; | |
int field_25C; | |
int field_260; | |
__int16 field_264; | |
__int16 field_266; | |
__int16 field_268; | |
__int16 field_26A; | |
__int16 field_26C; | |
__int16 field_26E; | |
__int16 field_270; | |
__int16 field_272; | |
__int16 field_274; | |
__int16 field_276; | |
__int16 field_278; | |
char field_27A; | |
char field_27B; | |
}; | |
struct ControllerPacket | |
{ | |
AnalogPadData AnalogPad; | |
u_char unk_8[28]; | |
}; | |
enum ShInGameState0 : __int32 | |
{ | |
Gameplay = 0x0, | |
OptionsMenu = 0x1, | |
StatusMenu = 0x2, | |
FMV = 0x4, | |
LoadArea1 = 0x5, | |
LoadArea2 = 0x6, | |
ReadMessage = 0x7, | |
SaveMenu1 = 0x8, | |
SaveMenu2 = 0x9, | |
Unk11 = 0xB, | |
Unk12 = 0xC, | |
GameOver = 0xD, | |
GamePaused = 0xE, | |
}; | |
struct SubCharacterFlags | |
{ | |
u_char anim_status_mb_0; | |
u_char SubCharacterFlags_field_1; | |
u_short char_flags_2; | |
int SubCharacterFlags_field_4; | |
__int16 SubCharacterFlags_field_8; | |
__int16 SubCharacterFlags_field_A; | |
u_int SubCharacterFlags_field_C; | |
u_int SubCharacterFlags_field_10; | |
}; | |
struct SubCharacter | |
{ | |
char chara_type_0; | |
char SubCharacter_field_1; | |
char SubCharacter_field_2; | |
char SubCharacter_field_3; | |
SubCharacterFlags flags_4; | |
VECTOR3 position_18; | |
SVECTOR rotation_24; | |
SVECTOR rot_spd_2C; | |
int SubCharacter_field_34; | |
int chara_mv_spd_38; | |
__int16 chara_mv_ang_y_3C; | |
u_short flags_3E; | |
char SubCharacter_field_40; | |
char SubCharacter_field_41; | |
__int16 SubCharacter_field_42; | |
__int16 SubCharacter_field_44; | |
u_char SubCharacter_field_46; | |
u_char SubCharacter_field_47; | |
u_char SubCharacter_field_48; | |
u_char SubCharacter_unk_49[3]; | |
int SubCharacter_field_4C; | |
__int16 SubCharacter_field_50; | |
__int16 SubCharacter_field_52; | |
__int16 SubCharacter_field_54; | |
__int16 SubCharacter_field_56; | |
int SubCharacter_field_58; | |
VECTOR3 SubCharacter_field_5C; | |
VECTOR3 SubCharacter_field_68; | |
int SubCharacter_unk_74[3]; | |
VECTOR3 SubCharacter_field_80; | |
VECTOR3 SubCharacter_field_8C; | |
VECTOR3 SubCharacter_field_98; | |
int SubCharacter_unk_A4[3]; | |
int health_B0; | |
int SubCharacter_field_B4; | |
int SubCharacter_field_B8; | |
int SubCharacter_field_BC; | |
int SubCharacter_field_C0; | |
u_short battle__dead_timer_C4; | |
__int16 SubCharacter_field_C6; | |
__int16 SubCharacter_field_C8; | |
__int16 SubCharacter_field_CA; | |
char SubCharacter_field_CC[2]; | |
__int16 SubCharacter_field_CE; | |
__int16 SubCharacter_field_D0; | |
__int16 SubCharacter_field_D2; | |
__int16 SubCharacter_field_D4; | |
__int16 SubCharacter_field_D6; | |
__int16 SubCharacter_field_D8; | |
__int16 SubCharacter_field_DA; | |
__int16 SubCharacter_field_DC; | |
__int16 SubCharacter_field_DE; | |
int flags_E0; | |
int SubCharacter_field_E4; | |
int SubCharacter_field_E8; | |
int SubCharacter_field_EC; | |
int SubCharacter_field_F0; | |
int SubCharacter_field_F4; | |
int SubCharacter_field_F8; | |
int SubCharacter_field_FC; | |
int SubCharacter_field_100; | |
int SubCharacter_field_104; | |
int SubCharacter_field_108; | |
u_char SubCharacter_field_10C; | |
u_char SubCharacter_field_10D; | |
char SubCharacter_field_10E[2]; | |
int SubCharacter_field_110; | |
int SubCharacter_field_114; | |
__int16 SubCharacter_field_118; | |
__int16 SubCharacter_field_11A; | |
int SubCharacter_field_11C; | |
__int16 SubCharacter_field_120; | |
__int16 SubCharacter_field_122; | |
__int16 SubCharacter_field_124; | |
u_short SubCharacter_field_126; | |
}; | |
// weird struct that almost seems like the start of another SubCharacter, but only the first few fields | |
// maybe these fields are actually part of a base model struct, for something attached to player char? | |
struct MainCharacterExtra | |
{ | |
char MainCharacterExtra_field_0; | |
char MainCharacterExtra_field_1; | |
u_char MainCharacterExtra_field_2; | |
char MainCharacterExtra_field_3; | |
SubCharacterFlags flags_4; | |
int MainCharacterExtra_field_18; | |
int MainCharacterExtra_field_1C; | |
int MainCharacterExtra_field_20; | |
int MainCharacterExtra_field_24; | |
int MainCharacterExtra_field_28; | |
}; | |
struct MainCharacter | |
{ | |
SubCharacter c; | |
MainCharacterExtra extra; | |
}; | |
struct s_GameWork_2514 | |
{ | |
_BYTE gap0[2]; | |
_WORD word2; | |
_DWORD dword4; | |
_BYTE gap8[3]; | |
_BYTE byteB; | |
_DWORD dwordC; | |
_DWORD dword10; | |
_DWORD dword14; | |
_DWORD dword18; | |
_DWORD dword1C; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment