Compare commits
35 Commits
a59d54c56d
...
474036e160
| Author | SHA1 | Date |
|---|---|---|
|
|
474036e160 | |
|
|
4b9d844423 | |
|
|
a11df12056 | |
|
|
e75d1d7cd4 | |
|
|
1f7de872ba | |
|
|
967915e0cb | |
|
|
0ccf76e9b6 | |
|
|
bde41d9e80 | |
|
|
1d1365f284 | |
|
|
824ad34698 | |
|
|
5ef42ecd2f | |
|
|
7a95f03b3c | |
|
|
e0018bb381 | |
|
|
360850aae9 | |
|
|
0f39352a1d | |
|
|
515ffe95f1 | |
|
|
e7d904cd7b | |
|
|
c1367225d7 | |
|
|
8e32f5e211 | |
|
|
c23ca9b2f8 | |
|
|
646242231b | |
|
|
d21ac4263c | |
|
|
0cb5c60d6d | |
|
|
9fe0a8f5f4 | |
|
|
c7690712d2 | |
|
|
da8a938a9d | |
|
|
bb56111d1b | |
|
|
b2cde2e634 | |
|
|
9088c3c2b6 | |
|
|
d745065d67 | |
|
|
56c27dd0fb | |
|
|
2062f09ac0 | |
|
|
17bcb1984c | |
|
|
2a602f70e7 | |
|
|
c2877b905a |
|
|
@ -3,32 +3,35 @@
|
|||
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "ability_id.h"
|
||||
#include "assert.h"
|
||||
#include "element.h"
|
||||
#include "equipment_id.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ char *name;
|
||||
/* 0x04 */ u8 field_0x4;
|
||||
/* 0x05 */ Element element;
|
||||
/* 0x06 */ u8 field_0x6;
|
||||
/* 0x07 */ u8 field_0x7;
|
||||
/* 0x08 */ u8 field_0x8;
|
||||
/* 0x09 */ u8 field_0x9;
|
||||
/* 0x0a */ u8 field_0xa;
|
||||
/* 0x0b */ u8 field_0xb;
|
||||
/* 0x0c */ u8 field_0xc;
|
||||
/* 0x0d */ u8 field_0xd;
|
||||
/* 0x0e */ u8 field_0xe;
|
||||
/* 0x0f */ u8 field_0xf;
|
||||
/* 0x00 */ char *name;
|
||||
/* 0x04 */ u8 field_0x4;
|
||||
/* 0x05 */ Element element;
|
||||
/* 0x06 */ u8 field_0x6;
|
||||
/* 0x07 */ u8 field_0x7;
|
||||
/* 0x08 */ u8 field_0x8;
|
||||
/* 0x09 */ u8 field_0x9;
|
||||
/* 0x0a */ u8 field_0xa;
|
||||
/* 0x0b */ u8 field_0xb;
|
||||
/* 0x0c */ u8 field_0xc;
|
||||
/* 0x0d */ u8 field_0xd;
|
||||
/* 0x0e */ u8 field_0xe;
|
||||
/* 0x0f */ u8 field_0xf;
|
||||
} AbilityData; // size:0x10
|
||||
|
||||
ASSERT_SIZE(AbilityData, 0x10);
|
||||
|
||||
extern AbilityData obAbilityData[];
|
||||
|
||||
extern char *obAbilityGetName(u8 index);
|
||||
extern u8 ability_get_field_0x4(u8 index);
|
||||
extern Element obAbilityGetElement(u8 index, u16 arg1, u16 arg2, s32 arg3,
|
||||
u16 arg4);
|
||||
extern char *obAbilityGetName(AbilityId index);
|
||||
extern u8 ability_get_field_0x4(AbilityId index);
|
||||
extern Element obAbilityGetElement(AbilityId index, EquipmentId arg1,
|
||||
EquipmentId arg2, EquipmentId arg3,
|
||||
EquipmentId arg4);
|
||||
|
||||
#endif // __ABILITY_H__
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
#ifndef __ABILITY_ID_H__
|
||||
#define __ABILITY_ID_H__
|
||||
|
||||
#include <ultratypes.h>
|
||||
|
||||
typedef u8 AbilityId;
|
||||
|
||||
#define ABILITY_ID_THRUST 1
|
||||
#define ABILITY_ID_PECK 2
|
||||
#define ABILITY_ID_PIERCE 3
|
||||
#define ABILITY_ID_SLASH 4
|
||||
#define ABILITY_ID_CLEAVE 5
|
||||
#define ABILITY_ID_REND 6
|
||||
#define ABILITY_ID_CLAW 7
|
||||
#define ABILITY_ID_BITE 8
|
||||
#define ABILITY_ID_STRIKE 9
|
||||
#define ABILITY_ID_CRUSH 10
|
||||
#define ABILITY_ID_SMASH 11
|
||||
#define ABILITY_ID_LASH 12
|
||||
#define ABILITY_ID_PULL_STRINGS 13
|
||||
#define ABILITY_ID_SHOOT 14
|
||||
#define ABILITY_ID_TAKE_A_PEEK 15
|
||||
#define ABILITY_ID_FLIP_OVER 16
|
||||
#define ABILITY_ID_SONIC_BOOM 17
|
||||
#define ABILITY_ID_WIND_SHOT 17
|
||||
|
||||
#endif // __ABILITY_ID_H__
|
||||
|
|
@ -4,45 +4,47 @@
|
|||
#include <ultra64.h>
|
||||
|
||||
#include "assert.h"
|
||||
#include "class_id.h"
|
||||
#include "element.h"
|
||||
#include "gender.h"
|
||||
|
||||
typedef struct {
|
||||
// Possible data still undiscovered:
|
||||
// - Alignment
|
||||
// - Held items (four u16's)
|
||||
// Possible data still undiscovered:
|
||||
// - Alignment
|
||||
// - Held items (four u16's)
|
||||
|
||||
/* 0x00 */ s8 name[0x10];
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
/* 0x11 */ u8 portrait;
|
||||
/* 0x12 */ u8 class;
|
||||
/* 0x13 */ u8 level;
|
||||
/* 0x14 */ u8 gender;
|
||||
/* 0x15 */ u8 field_0x15;
|
||||
/* 0x16 */ u16 max_hp;
|
||||
/* 0x18 */ u16 cur_hp;
|
||||
/* 0x1A */ Element element;
|
||||
/* 0x1B */ u8 field_0x1b;
|
||||
/* 0x00 */ s8 name[0x10];
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
/* 0x11 */ u8 portrait;
|
||||
/* 0x12 */ ClassId class;
|
||||
/* 0x13 */ u8 level;
|
||||
/* 0x14 */ Gender gender;
|
||||
/* 0x15 */ u8 field_0x15;
|
||||
/* 0x16 */ u16 max_hp;
|
||||
/* 0x18 */ u16 cur_hp;
|
||||
/* 0x1A */ Element element;
|
||||
/* 0x1B */ u8 field_0x1b;
|
||||
|
||||
/* 0x1C */ u16 strength;
|
||||
/* 0x1E */ u16 vitality;
|
||||
/* 0x20 */ u16 intelligence;
|
||||
/* 0x22 */ u16 mentality;
|
||||
/* 0x24 */ u16 agility;
|
||||
// DEX affects melee and special attacks, as well as accuracy.
|
||||
/* 0x26 */ u16 dexterity;
|
||||
/* 0x1C */ u16 strength;
|
||||
/* 0x1E */ u16 vitality;
|
||||
/* 0x20 */ u16 intelligence;
|
||||
/* 0x22 */ u16 mentality;
|
||||
/* 0x24 */ u16 agility;
|
||||
// DEX affects melee and special attacks, as well as accuracy.
|
||||
/* 0x26 */ u16 dexterity;
|
||||
|
||||
/* 0x28 */ u8 field_0x28;
|
||||
/* 0x29 */ u8 field_0x29;
|
||||
/* 0x2a */ u16 item_upper_left;
|
||||
/* 0x2c */ u16 item_upper_right;
|
||||
/* 0x2e */ u16 item_lower_left;
|
||||
/* 0x30 */ u16 item_lower_right;
|
||||
/* 0x32 */ u8 field_0x32;
|
||||
/* 0x33 */ s8 field_0x33;
|
||||
/* 0x34 */ u8 field_0x34;
|
||||
/* 0x35 */ u8 field_0x35;
|
||||
/* 0x36 */ u8 field_0x36;
|
||||
/* 0x37 */ u8 field_0x37;
|
||||
/* 0x28 */ u8 field_0x28;
|
||||
/* 0x29 */ u8 field_0x29;
|
||||
/* 0x2a */ u16 item_upper_left;
|
||||
/* 0x2c */ u16 item_upper_right;
|
||||
/* 0x2e */ u16 item_lower_left;
|
||||
/* 0x30 */ u16 item_lower_right;
|
||||
/* 0x32 */ u8 field_0x32;
|
||||
/* 0x33 */ s8 field_0x33;
|
||||
/* 0x34 */ u8 field_0x34;
|
||||
/* 0x35 */ u8 field_0x35;
|
||||
/* 0x36 */ u8 field_0x36;
|
||||
/* 0x37 */ u8 field_0x37;
|
||||
} CharacterSlot; // size:0x38
|
||||
|
||||
ASSERT_SIZE(CharacterSlot, 0x38);
|
||||
|
|
|
|||
172
include/class.h
172
include/class.h
|
|
@ -4,107 +4,109 @@
|
|||
#include <ultra64.h>
|
||||
|
||||
#include "assert.h"
|
||||
#include "equipment.h"
|
||||
#include "class_id.h"
|
||||
#include "equipment_id.h"
|
||||
#include "gender.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ char* name;
|
||||
/* 0x04 */ u8 field_0x4;
|
||||
/* 0x05 */ u8 gender;
|
||||
/* 0x06 */ u8 leadership_rank;
|
||||
/* 0x07 */ u8 field_0x7;
|
||||
/* 0x00 */ char *name;
|
||||
/* 0x04 */ u8 field_0x4;
|
||||
/* 0x05 */ Gender gender;
|
||||
/* 0x06 */ u8 leadership_rank;
|
||||
/* 0x07 */ u8 field_0x7;
|
||||
|
||||
/* 0x08 */ u16 max_hp;
|
||||
/* 0x0a */ u8 field_0xa;
|
||||
/* 0x0b */ u8 field_0xb;
|
||||
/* 0x0c */ u16 strength;
|
||||
/* 0x0e */ u8 field_0xe;
|
||||
/* 0x0f */ u8 field_0xf;
|
||||
/* 0x10 */ u16 vitality;
|
||||
/* 0x12 */ u8 field_0x12;
|
||||
/* 0x13 */ u8 field_0x13;
|
||||
/* 0x14 */ u16 intelligence;
|
||||
/* 0x16 */ u8 field_0x16;
|
||||
/* 0x17 */ u8 field_0x17;
|
||||
/* 0x18 */ u16 mentality;
|
||||
/* 0x1a */ u8 field_0x1a;
|
||||
/* 0x1b */ u8 field_0x1b;
|
||||
/* 0x1c */ u16 agility;
|
||||
/* 0x1e */ u8 field_0x1e;
|
||||
/* 0x1f */ u8 field_0x1f;
|
||||
/* 0x20 */ u16 dexterity;
|
||||
/* 0x22 */ u8 field_0x22;
|
||||
/* 0x23 */ u8 field_0x23;
|
||||
/* 0x08 */ u16 max_hp;
|
||||
/* 0x0a */ u8 field_0xa;
|
||||
/* 0x0b */ u8 field_0xb;
|
||||
/* 0x0c */ u16 strength;
|
||||
/* 0x0e */ u8 field_0xe;
|
||||
/* 0x0f */ u8 field_0xf;
|
||||
/* 0x10 */ u16 vitality;
|
||||
/* 0x12 */ u8 field_0x12;
|
||||
/* 0x13 */ u8 field_0x13;
|
||||
/* 0x14 */ u16 intelligence;
|
||||
/* 0x16 */ u8 field_0x16;
|
||||
/* 0x17 */ u8 field_0x17;
|
||||
/* 0x18 */ u16 mentality;
|
||||
/* 0x1a */ u8 field_0x1a;
|
||||
/* 0x1b */ u8 field_0x1b;
|
||||
/* 0x1c */ u16 agility;
|
||||
/* 0x1e */ u8 field_0x1e;
|
||||
/* 0x1f */ u8 field_0x1f;
|
||||
/* 0x20 */ u16 dexterity;
|
||||
/* 0x22 */ u8 field_0x22;
|
||||
/* 0x23 */ u8 field_0x23;
|
||||
|
||||
/* 0x24 */ u8 field_0x24;
|
||||
/* 0x25 */ u8 field_0x25;
|
||||
/* 0x26 */ u8 field_0x26;
|
||||
/* 0x27 */ u8 field_0x27;
|
||||
/* 0x28 */ u8 field_0x28;
|
||||
/* 0x29 */ u8 field_0x29;
|
||||
/* 0x2a */ u8 field_0x2a;
|
||||
/* 0x2b */ u8 field_0x2b;
|
||||
/* 0x2c */ u8 field_0x2c;
|
||||
/* 0x2d */ u8 field_0x2d;
|
||||
/* 0x24 */ u8 field_0x24;
|
||||
/* 0x25 */ u8 field_0x25;
|
||||
/* 0x26 */ u8 field_0x26;
|
||||
/* 0x27 */ u8 field_0x27;
|
||||
/* 0x28 */ u8 field_0x28;
|
||||
/* 0x29 */ u8 field_0x29;
|
||||
/* 0x2a */ u8 field_0x2a;
|
||||
/* 0x2b */ u8 field_0x2b;
|
||||
/* 0x2c */ u8 field_0x2c;
|
||||
/* 0x2d */ u8 field_0x2d;
|
||||
|
||||
/* 0x2e */ u16 item_upper_left;
|
||||
/* 0x30 */ u16 item_upper_right;
|
||||
/* 0x32 */ u16 item_lower_left;
|
||||
/* 0x34 */ u16 item_lower_right;
|
||||
/* 0x2e */ u16 item_upper_left;
|
||||
/* 0x30 */ u16 item_upper_right;
|
||||
/* 0x32 */ u16 item_lower_left;
|
||||
/* 0x34 */ u16 item_lower_right;
|
||||
|
||||
/* 0x36 */ u8 field_0x36;
|
||||
/* 0x36 */ u8 field_0x36;
|
||||
|
||||
// The ability which is used when the unit is placed in the front row.
|
||||
/* 0x37 */ u8 ability_front;
|
||||
// The amount of hits the unit performs when placed in the front row.
|
||||
/* 0x38 */ u8 ability_front_hitcount;
|
||||
// The ability which is used when the unit is placed in the middle row.
|
||||
/* 0x39 */ u8 ability_middle;
|
||||
// The amount of hits the unit performs when placed in the middle row.
|
||||
/* 0x3a */ u8 ability_middle_hitcount;
|
||||
// The ability which is used when the unit is placed in the back row.
|
||||
/* 0x3b */ u8 ability_back;
|
||||
// The amount of hits the unit performs when placed in the back row.
|
||||
/* 0x3c */ u8 ability_back_hitcount;
|
||||
// The ability which is used when the unit is placed in the front row.
|
||||
/* 0x37 */ u8 ability_front;
|
||||
// The amount of hits the unit performs when placed in the front row.
|
||||
/* 0x38 */ u8 ability_front_hitcount;
|
||||
// The ability which is used when the unit is placed in the middle row.
|
||||
/* 0x39 */ u8 ability_middle;
|
||||
// The amount of hits the unit performs when placed in the middle row.
|
||||
/* 0x3a */ u8 ability_middle_hitcount;
|
||||
// The ability which is used when the unit is placed in the back row.
|
||||
/* 0x3b */ u8 ability_back;
|
||||
// The amount of hits the unit performs when placed in the back row.
|
||||
/* 0x3c */ u8 ability_back_hitcount;
|
||||
|
||||
/* 0x3d */ u8 field_0x3d;
|
||||
/* 0x3e */ u8 field_0x3e;
|
||||
/* 0x3f */ u8 field_0x3f;
|
||||
/* 0x3d */ u8 field_0x3d;
|
||||
/* 0x3e */ u8 field_0x3e;
|
||||
/* 0x3f */ u8 field_0x3f;
|
||||
|
||||
/* 0x40 */ u8 field_0x40;
|
||||
/* 0x41 */ u8 field_0x41;
|
||||
/* 0x42 */ u8 field_0x42;
|
||||
/* 0x43 */ u8 field_0x43;
|
||||
/* 0x44 */ u8 field_0x44;
|
||||
/* 0x45 */ u8 field_0x45;
|
||||
/* 0x46 */ u8 element;
|
||||
/* 0x47 */ u8 max_items;
|
||||
/* 0x40 */ u8 field_0x40;
|
||||
/* 0x41 */ u8 field_0x41;
|
||||
/* 0x42 */ u8 field_0x42;
|
||||
/* 0x43 */ u8 field_0x43;
|
||||
/* 0x44 */ u8 field_0x44;
|
||||
/* 0x45 */ ClassId field_0x45;
|
||||
/* 0x46 */ u8 element;
|
||||
/* 0x47 */ u8 max_items;
|
||||
} ClassData; // size:0x48
|
||||
|
||||
ASSERT_SIZE(ClassData, 0x48);
|
||||
|
||||
extern ClassData obClassData[];
|
||||
extern EquipmentId (*FP_CLASS_GET_ITEM_1[4])(u8, u8);
|
||||
extern EquipmentId (*FP_CLASS_GET_ITEM_1[4])(u8, ClassId);
|
||||
|
||||
extern u8 class_get_field_0x2c(u8 portrait, u8 class);
|
||||
extern u8 obClassGetAbilityFront(u8 portrait, u8 class);
|
||||
extern u8 obClassGetAbilityFrontHits(u8 portrait, u8 class);
|
||||
extern u8 obClassGetAbilityMiddle(u8 portrait, u8 class);
|
||||
extern u8 obClassGetAbilityMiddleHits(u8 portrait, u8 class);
|
||||
extern u8 obClassGetAbilityBack(u8 portrait, u8 class);
|
||||
extern u8 obClassGetAbilityBackHits(u8 portrait, u8 class);
|
||||
extern u8 class_get_field_0x4(u8 portrait, u8 class);
|
||||
extern u8 obClassGetGender(u8 portrait, u8 class);
|
||||
extern u8 obClassGetLeadershipRank(u8 portrait, u8 class);
|
||||
extern u8 class_get_global_flag(u8 portrait, u8 class);
|
||||
u8 class_get_field_0x2c(u8 portrait, ClassId class);
|
||||
u8 obClassGetAbilityFront(u8 portrait, ClassId class);
|
||||
u8 obClassGetAbilityFrontHits(u8 portrait, ClassId class);
|
||||
u8 obClassGetAbilityMiddle(u8 portrait, ClassId class);
|
||||
u8 obClassGetAbilityMiddleHits(u8 portrait, ClassId class);
|
||||
u8 obClassGetAbilityBack(u8 portrait, ClassId class);
|
||||
u8 obClassGetAbilityBackHits(u8 portrait, ClassId class);
|
||||
u8 class_get_field_0x4(u8 portrait, ClassId class);
|
||||
u8 obClassGetGender(u8 portrait, ClassId class);
|
||||
u8 obClassGetLeadershipRank(u8 portrait, ClassId class);
|
||||
u8 class_get_global_flag(u8 portrait, ClassId class);
|
||||
|
||||
extern EquipmentId obClassGetItemUpperLeft(u8 portrait, u8 class);
|
||||
extern EquipmentId obClassGetItemUpperRight(u8 portrait, u8 class);
|
||||
extern EquipmentId obClassGetItemLowerLeft(u8 portrait, u8 class);
|
||||
extern EquipmentId obClassGetItemLowerRight(u8 portrait, u8 class);
|
||||
EquipmentId obClassGetItemUpperLeft(u8 portrait, ClassId class);
|
||||
EquipmentId obClassGetItemUpperRight(u8 portrait, ClassId class);
|
||||
EquipmentId obClassGetItemLowerLeft(u8 portrait, ClassId class);
|
||||
EquipmentId obClassGetItemLowerRight(u8 portrait, ClassId class);
|
||||
|
||||
extern char* obClassGetAbilityFrontName(u8 portrait, u8 class);
|
||||
extern char* obClassGetAbilityMiddleName(u8 portrait, u8 class);
|
||||
extern char* obClassGetAbilityBackName(u8 portrait, u8 class);
|
||||
extern char* obClassGetName(u8 portrait, u8 class);
|
||||
char *obClassGetAbilityFrontName(u8 portrait, ClassId class);
|
||||
char *obClassGetAbilityMiddleName(u8 portrait, ClassId class);
|
||||
char *obClassGetAbilityBackName(u8 portrait, ClassId class);
|
||||
char *obClassGetName(u8 portrait, ClassId class);
|
||||
|
||||
#endif // __CLASS_H__
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#ifndef __CLASS_ID_H__
|
||||
#define __CLASS_ID_H__
|
||||
|
||||
#include <ultratypes.h>
|
||||
|
||||
typedef u8 ClassId;
|
||||
|
||||
#define CLASS_ID_SOLDIER 1
|
||||
#define CLASS_ID_FIGHTER 2
|
||||
#define CLASS_ID_LYCANTROPE 3
|
||||
#define CLASS_ID_AMAZON 4
|
||||
#define CLASS_ID_KNIGHT 5
|
||||
#define CLASS_ID_BERSERKER 6
|
||||
#define CLASS_ID_FENCER 7
|
||||
#define CLASS_ID_PHALANX 8
|
||||
#define CLASS_ID_BEAST_TAMER 9
|
||||
#define CLASS_ID_DOLL_MASTER 10
|
||||
#define CLASS_ID_NINJA 11
|
||||
|
||||
#endif // __CLASS_ID_H__
|
||||
|
|
@ -139,7 +139,7 @@ extern OSPiHandle* CART_HANDLE;
|
|||
|
||||
extern OSMesgQueue MQ_800E7988;
|
||||
|
||||
extern OSContPad __GLOBAL_CONTROLLER_DATA_COPY[MAXCONTROLLERS];
|
||||
extern OSContPad obContData[MAXCONTROLLERS];
|
||||
|
||||
extern void (*SWAP_BUFFER_FUNC_800A9E8C)(void** buffers);
|
||||
|
||||
|
|
@ -161,7 +161,7 @@ extern void __osViSwapBuffer_3(void** buffers);
|
|||
|
||||
extern void func_8008350C();
|
||||
|
||||
extern void __set_vi_mode(s32);
|
||||
extern void obSetViMode(s32);
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 vram_start;
|
||||
|
|
@ -300,7 +300,7 @@ extern void func_8017223C(s32);
|
|||
extern void func_80172368();
|
||||
extern void func_80172394();
|
||||
extern void __resets_menu_timer(void);
|
||||
extern u16 D_800C4C26;
|
||||
extern u16 __maybeBlockingRetraceFunc;
|
||||
extern u16 D_8018F1A2;
|
||||
extern s32 D_8018FB34;
|
||||
|
||||
|
|
@ -537,12 +537,10 @@ extern s8 D_800A8211;
|
|||
extern s8 D_800A8212;
|
||||
extern u8 D_800A8213;
|
||||
|
||||
extern OSContPad __GLOBAL_CONTROLLER_DATA_COPY[4];
|
||||
|
||||
extern u8 __get_compared_osTvType();
|
||||
extern u8 __reset_compared_osTvType();
|
||||
extern void func_8016CD50(u8 arg0);
|
||||
extern void __inc_compared_osTvType(u8 arg0);
|
||||
u8 __get_compared_osTvType();
|
||||
u8 __reset_compared_osTvType();
|
||||
void func_8016CD50(u8 arg0);
|
||||
void __inc_compared_osTvType(u8 arg0);
|
||||
|
||||
extern s32 func_80173B60(s32);
|
||||
extern s32 D_800AF0B0;
|
||||
|
|
@ -563,4 +561,7 @@ extern void obSetCurrentTime(u32 time);
|
|||
extern u32 obGetCurrentTime();
|
||||
extern f32 obGetCurrentTimeF();
|
||||
|
||||
extern void _some_camera_setup(float fovY, float aspect);
|
||||
void obReadController(u16);
|
||||
|
||||
#endif
|
||||
|
|
@ -6,8 +6,8 @@
|
|||
#include "assert.h"
|
||||
#include "element.h"
|
||||
|
||||
#include "equipment_type.h"
|
||||
#include "equipment_id.h"
|
||||
#include "equipment_type.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ char *name;
|
||||
|
|
@ -45,49 +45,46 @@ ASSERT_SIZE(EquipmentData, 0x20);
|
|||
extern EquipmentData obEquipmentData[];
|
||||
extern s8 (*obEquipmentGetResistance[])(EquipmentId index);
|
||||
|
||||
extern char *obEquipmentGetName(EquipmentId index);
|
||||
extern EquipmentType obEquipmentGetType(EquipmentId index);
|
||||
extern Element obEquipmentGetElement(EquipmentId index);
|
||||
char *obEquipmentGetName(EquipmentId index);
|
||||
EquipmentType obEquipmentGetType(EquipmentId index);
|
||||
Element obEquipmentGetElement(EquipmentId index);
|
||||
|
||||
extern u8 equipment_get_field_0x6(EquipmentId index);
|
||||
extern u16 obEquipmentGetBuyPrice(EquipmentId index);
|
||||
extern s8 equipment_get_field_0x10(EquipmentId index);
|
||||
u8 equipment_get_field_0x6(EquipmentId index);
|
||||
u16 obEquipmentGetBuyPrice(EquipmentId index);
|
||||
s8 equipment_get_field_0x10(EquipmentId index);
|
||||
|
||||
extern s8 obEquipmentGetStrength(EquipmentId index);
|
||||
extern s8 obEquipmentGetVitality(EquipmentId index);
|
||||
extern s8 obEquipmentGetIntelligence(EquipmentId index);
|
||||
extern s8 obEquipmentGetMentality(EquipmentId index);
|
||||
extern s8 obEquipmentGetAgility(EquipmentId index);
|
||||
extern s8 obEquipmentGetDexterity(EquipmentId index);
|
||||
s8 obEquipmentGetStrength(EquipmentId index);
|
||||
s8 obEquipmentGetVitality(EquipmentId index);
|
||||
s8 obEquipmentGetIntelligence(EquipmentId index);
|
||||
s8 obEquipmentGetMentality(EquipmentId index);
|
||||
s8 obEquipmentGetAgility(EquipmentId index);
|
||||
s8 obEquipmentGetDexterity(EquipmentId index);
|
||||
|
||||
extern s8 obEquipmentGetResistanceStrike(EquipmentId index);
|
||||
extern s8 obEquipmentGetResistanceWind(EquipmentId index);
|
||||
extern s8 obEquipmentGetResistanceFire(EquipmentId index);
|
||||
extern s8 obEquipmentGetResistanceEarth(EquipmentId index);
|
||||
extern s8 obEquipmentGetResistanceWater(EquipmentId index);
|
||||
extern s8 obEquipmentGetResistanceVirtue(EquipmentId index);
|
||||
extern s8 obEquipmentGetResistanceBane(EquipmentId index);
|
||||
s8 obEquipmentGetResistanceStrike(EquipmentId index);
|
||||
s8 obEquipmentGetResistanceWind(EquipmentId index);
|
||||
s8 obEquipmentGetResistanceFire(EquipmentId index);
|
||||
s8 obEquipmentGetResistanceEarth(EquipmentId index);
|
||||
s8 obEquipmentGetResistanceWater(EquipmentId index);
|
||||
s8 obEquipmentGetResistanceVirtue(EquipmentId index);
|
||||
s8 obEquipmentGetResistanceBane(EquipmentId index);
|
||||
|
||||
extern u8 equipment_get_field_0x18_b68(EquipmentId index);
|
||||
extern u8 equipment_get_field_0x18_b46(EquipmentId index);
|
||||
extern u8 equipment_get_field_0x18_b24(EquipmentId index);
|
||||
extern u8 equipment_get_field_0x18_b12(EquipmentId index);
|
||||
u8 equipment_get_field_0x18_b68(EquipmentId index);
|
||||
u8 equipment_get_field_0x18_b46(EquipmentId index);
|
||||
u8 equipment_get_field_0x18_b24(EquipmentId index);
|
||||
u8 equipment_get_field_0x18_b12(EquipmentId index);
|
||||
|
||||
extern u8 equipment_get_field_0x19_b68(EquipmentId index);
|
||||
extern u8 equipment_get_field_0x19_b46(EquipmentId index);
|
||||
extern u8 equipment_get_field_0x19_b24(EquipmentId index);
|
||||
extern u8 equipment_get_field_0x19_b12(EquipmentId index);
|
||||
u8 equipment_get_field_0x19_b68(EquipmentId index);
|
||||
u8 equipment_get_field_0x19_b46(EquipmentId index);
|
||||
u8 equipment_get_field_0x19_b24(EquipmentId index);
|
||||
u8 equipment_get_field_0x19_b12(EquipmentId index);
|
||||
|
||||
extern u8 equipment_get_field_0x1a_b7(EquipmentId index);
|
||||
u8 equipment_get_field_0x1a_b7(EquipmentId index);
|
||||
|
||||
extern u8 obEquipmentIsWeapon(EquipmentId index);
|
||||
extern EquipmentId obEquipmentGetFirstWeapon(EquipmentId arg0,
|
||||
EquipmentId arg1,
|
||||
EquipmentId arg2,
|
||||
EquipmentId arg3);
|
||||
extern EquipmentId obEquipmentGetFirstSpellbook(EquipmentId arg0,
|
||||
EquipmentId arg1,
|
||||
EquipmentId arg2,
|
||||
EquipmentId arg3);
|
||||
u8 obEquipmentIsWeapon(EquipmentId index);
|
||||
extern EquipmentId obEquipmentGetFirstWeapon(EquipmentId arg0, EquipmentId arg1,
|
||||
EquipmentId arg2,
|
||||
EquipmentId arg3);
|
||||
EquipmentId obEquipmentGetFirstSpellbook(EquipmentId arg0, EquipmentId arg1,
|
||||
EquipmentId arg2, EquipmentId arg3);
|
||||
|
||||
#endif
|
||||
|
|
@ -6,5 +6,20 @@
|
|||
typedef u16 EquipmentId;
|
||||
|
||||
#define EQUIPMENT_ID_GALLANT_DOLL 132
|
||||
// ...
|
||||
#define EQUIPMENT_ID_SPELLBOOK 243
|
||||
#define EQUIPMENT_ID_BOOK_OF_WIND 244
|
||||
#define EQUIPMENT_ID_BOOK_OF_FLAME 245
|
||||
#define EQUIPMENT_ID_BOOK_OF_EARTH 246
|
||||
#define EQUIPMENT_ID_BOOK_OF_WATER 247
|
||||
#define EQUIPMENT_ID_BOOK_OF_BANE 248
|
||||
#define EQUIPMENT_ID_TEMPEST 249
|
||||
#define EQUIPMENT_ID_ANNIHILATION 250
|
||||
#define EQUIPMENT_ID_METEOR_STRIKE 251
|
||||
#define EQUIPMENT_ID_WHITE_MUTE 252
|
||||
#define EQUIPMENT_ID_AMULET 253
|
||||
#define EQUIPMENT_ID_RING_OF_ELOQUENCE 254
|
||||
#define EQUIPMENT_ID_FIRECREST 255
|
||||
#define EQUIPMENT_ID_BELL_OF_THUNDER 256
|
||||
|
||||
#endif // __EQUIPMENT_ID_H__
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef __GENDER_H__
|
||||
#define __GENDER_H__
|
||||
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "assert.h"
|
||||
|
||||
typedef u8 Gender;
|
||||
|
||||
#define GENDER_MALE 0
|
||||
#define GENDER_FEMALE 1
|
||||
// The gender is based on the gender of the leader.
|
||||
#define GENDER_LEADER 2
|
||||
|
||||
ASSERT_SIZE(Gender, 1);
|
||||
|
||||
#endif // __GENDER_H__
|
||||
|
|
@ -8,3 +8,8 @@
|
|||
.global \label
|
||||
\label:
|
||||
.endm
|
||||
|
||||
.macro jlabel label
|
||||
.global \label
|
||||
\label:
|
||||
.endm
|
||||
|
|
|
|||
|
|
@ -1,3 +1,16 @@
|
|||
__SOME_PERSPECTIVE_MATRIX = 0x800aedf0; // size:64
|
||||
__SOME_PERSPECITVE_MATRIX_NORM_SCALE = 0x800aee70; // size:2
|
||||
__SOME_LOOK_AT_MATRIX = 0x800aee30; // size:64
|
||||
_some_camera_setup = 0x800733F8;
|
||||
retraceFunc = 0x80072398;
|
||||
__maybeBlockingRetraceFunc = 0x800c4c26; // size:2
|
||||
|
||||
_main_stop_all_audio = 0x800EA714;
|
||||
|
||||
obCurrentFrameBuf = 0x800c4bb8; // size:4
|
||||
obFrameBuf = 0x800a8204; // size:12
|
||||
obReadController = 0x8007284C;
|
||||
|
||||
nusched = 0x800E8B10; // size:0x680
|
||||
nuScRetraceCounter = 0x800C4BCC;
|
||||
nuScPreNMIFlag = 0x800C4800;
|
||||
|
|
@ -336,7 +349,7 @@ DISPLAY_LIST_801B3618 = 0x801B3618; // rom:0x100658
|
|||
LIGHTS_801869A0 = 0x801869A0; // rom:0x5C8A0 size:40
|
||||
|
||||
|
||||
__SOMETHING_WITH_GFX = 0x800E9BE0; // size:0x18
|
||||
__SOMETHING_WITH_GFX = 0x800E9BE0; // size:4
|
||||
|
||||
__MAYBE_DISPLAY_LIST = 0x801B8430; // rom:0x1EE930
|
||||
|
||||
|
|
@ -770,8 +783,8 @@ STR_Unknown_method_skiped = 0x800AE284; // type:asciz
|
|||
__log_fatal_error = 0x8007BBF4;
|
||||
__log_fatal_error_desc = 0x8007BBC0;
|
||||
|
||||
__set_vi_mode = 0x80072738;
|
||||
__calls_osViSwapBuffer_8007307C = 0x8007307C;
|
||||
obSetViMode = 0x80072738;
|
||||
gfxSwapCfbFunc = 0x8007307C;
|
||||
|
||||
osAiSetFrequency = 0x8008C430;
|
||||
osAiGetLength = 0x8008C410;
|
||||
|
|
@ -1019,7 +1032,7 @@ __ROM_0_to_8000 = 0x800A83B8; // rom:0x387B8
|
|||
|
||||
romCopy_256 = 0x80074CF0; // rom:0x50F0
|
||||
|
||||
__GLOBAL_CONTROLLER_DATA_COPY = 0x0800AEE78; // size:0x18
|
||||
obContData = 0x0800AEE78; // size:0x18
|
||||
|
||||
__calls_copy_controller_data = 0x8007297C;
|
||||
|
||||
|
|
|
|||
64
splat.yaml
64
splat.yaml
|
|
@ -29,6 +29,14 @@ options:
|
|||
# auto_all_sections: [".data", "rodata", ".bss"]
|
||||
# libultra_symbols: True
|
||||
# hardware_regs: True
|
||||
|
||||
# This tells splat/spimdisasm to use one kind of label for functions (glabel) and a different one for data and jumptable labels
|
||||
# This helps you to avoid marking some data as a function or viceversa
|
||||
asm_function_macro: glabel
|
||||
asm_data_macro: dlabel
|
||||
asm_jtbl_label_macro: jlabel
|
||||
asm_emit_size_directive: True
|
||||
|
||||
segments:
|
||||
- name: header
|
||||
type: header
|
||||
|
|
@ -55,7 +63,11 @@ segments:
|
|||
subsegments:
|
||||
- [0x1060, c, "main"]
|
||||
- [0x4AC0, c, "_ob_overconfident_mother"]
|
||||
- [0x5FC0, c, "_ob_rabid_jar"]
|
||||
# - [0x5FC0, c, "_ob_rabid_jar"]
|
||||
- [0x5FC0, asm, "_ob_rabid_jar"]
|
||||
- [0x68E0, asm]
|
||||
- [0x8700, asm]
|
||||
- [0xA370, asm]
|
||||
|
||||
# Needs string fixing
|
||||
- [0xB0B0, asm, "_ob_creepy_middle"]
|
||||
|
|
@ -155,7 +167,7 @@ segments:
|
|||
- [0x1BCC0, asm, "libultra/io/pimgr"]
|
||||
- [0x1BE50, asm, "libultra/io/epirawdma"]
|
||||
- [0x1C040, asm, "libultra/io/epidma"]
|
||||
- [0x1C0E0, asm, "libultra/io/epilinkhandle"]
|
||||
- [0x1C0E0, c, "libultra/io/epilinkhandle"]
|
||||
- [0x1C130, asm, "libultra/io/cartrominit"]
|
||||
- [0x1C2B0, asm, "libultra/io/devmgr"]
|
||||
- [0x1C670, asm, "libultra/io/piacs"]
|
||||
|
|
@ -335,8 +347,12 @@ segments:
|
|||
|
||||
- [0x3E100, data]
|
||||
|
||||
- [0x3E330, .rodata, "_ob_rabid_jar"]
|
||||
- [0x3E460, rodata]
|
||||
# - [0x3E330, .rodata, "_ob_rabid_jar"]
|
||||
- [0x3E330, rodata]
|
||||
# - [0x3E388, rodata]
|
||||
# - [0x3E3A8, rodata]
|
||||
# - [0x3E438, rodata]
|
||||
# - [0x3E460, rodata]
|
||||
- [0x3E4A0, rodata, "_ob_creepy_middle"]
|
||||
- [0x3E7A0, .rodata, "_ob_spooky_degree"]
|
||||
- [0x3E7C0, .rodata, "_ob_ambitious_fold"]
|
||||
|
|
@ -344,7 +360,7 @@ segments:
|
|||
- [0x3E7F0, .rodata, "_ob_soft_coach"]
|
||||
- [0x3E800, .rodata, "_ob_slippery_expansion"]
|
||||
- [0x3E810, rodata, "libmus/player"]
|
||||
# - [0x3E8F0, rodata]
|
||||
- [0x3E8F0, rodata]
|
||||
- [0x3E900, rodata, "16100"]
|
||||
- [0x3E930, rodata, "161A0"]
|
||||
- [0x3E9A0, rodata, "177B0"]
|
||||
|
|
@ -363,6 +379,7 @@ segments:
|
|||
- [0x3EE20, rodata, "libultra/os/exceptasm"]
|
||||
- [0x3EE70, rodata, "libultra/gu/libm_vals"]
|
||||
- [0x3EE80, rodata, "libc/xprintf"]
|
||||
- [0x3EEA0, rodata]
|
||||
- [0x3F000, rodata, "libc/xlitob"]
|
||||
- [0x3F070, rodata, "2CDA0"]
|
||||
- [0x3F0C0, rodata, "2CEF0"]
|
||||
|
|
@ -374,6 +391,7 @@ segments:
|
|||
|
||||
- { start: 0x3F1B0, type: bss, vram: 0x800AEDB0 }
|
||||
|
||||
# - [0x3F1B0, bin]
|
||||
- type: code
|
||||
name: segment_song
|
||||
dir: segment_song
|
||||
|
|
@ -506,7 +524,7 @@ segments:
|
|||
- [0x6E1B0, data, "gfx/_ob_quarrelsome_spot"]
|
||||
- [0x6E250, data]
|
||||
|
||||
- [0x6E520, rodata]
|
||||
- [0x6E520, rodata, "overlay_69900/ob_ancient_ball"]
|
||||
- [0x6E610, rodata]
|
||||
|
||||
- { start: 0x6E660, type: bss, vram: 0x8019C8D0 }
|
||||
|
|
@ -745,16 +763,16 @@ segments:
|
|||
symbol_name_format: overlay_14EBE0_$VRAM_$ROM
|
||||
exclusive_ram_id: test_overlapping
|
||||
subsegments:
|
||||
- [0x14EBE0, c, "_ob_phobic_spot"]
|
||||
- [0x151F40, c, "_ob_touted_bedroom"]
|
||||
- [0x15DF10, c, "_ob_daily_account"]
|
||||
- [0x15DF70, c, "_ob_gaudy_line"]
|
||||
- [0x15E670, c, "_ob_devilish_crayon"]
|
||||
- [0x14EBE0, asm, "_ob_phobic_spot"]
|
||||
- [0x151F40, asm, "_ob_touted_bedroom"]
|
||||
- [0x15DF10, asm, "_ob_daily_account"]
|
||||
- [0x15DF70, asm, "_ob_gaudy_line"]
|
||||
- [0x15E670, asm, "_ob_devilish_crayon"]
|
||||
|
||||
- [0x15FBF0, data]
|
||||
|
||||
- [0x165E50, .rodata, "_ob_touted_bedroom"]
|
||||
- [0x165FB0, .rodata, "_ob_devilish_crayon"]
|
||||
- [0x165E50, rodata, "_ob_touted_bedroom"]
|
||||
- [0x165FB0, rodata, "_ob_devilish_crayon"]
|
||||
|
||||
- { start: 0x165FC0, type: bss, vram: 0x80214E50 }
|
||||
|
||||
|
|
@ -1395,20 +1413,20 @@ segments:
|
|||
symbol_name_format: overlay_286BD0_$VRAM_$ROM
|
||||
exclusive_ram_id: test_overlapping
|
||||
subsegments:
|
||||
- [0x286BD0, c, "_ob_pathetic_action"]
|
||||
- [0x289780, c, "_ob_childlike_cherry"]
|
||||
- [0x28A7B0, c, "_ob_future_flesh"]
|
||||
- [0x296CE0, c, "_ob_painstaking_mouth"]
|
||||
- [0x299D50, c, "_ob_early_ghost"]
|
||||
- [0x286BD0, asm, "_ob_pathetic_action"]
|
||||
- [0x289780, asm, "_ob_childlike_cherry"]
|
||||
- [0x28A7B0, asm, "_ob_future_flesh"]
|
||||
- [0x296CE0, asm, "_ob_painstaking_mouth"]
|
||||
- [0x299D50, asm, "_ob_early_ghost"]
|
||||
|
||||
- [0x299D80, data, "data_299D80"]
|
||||
|
||||
- [0x29A070, .rodata, "_ob_pathetic_action"]
|
||||
- [0x29A0A0, .rodata, "_ob_childlike_cherry"]
|
||||
- [0x29A0C0, .rodata, "_ob_future_flesh"]
|
||||
- [0x29A1A0, rodata]
|
||||
- [0x29A070, rodata, "_ob_pathetic_action"]
|
||||
- [0x29A0A0, rodata, "_ob_childlike_cherry"]
|
||||
- [0x29A0C0, rodata, "_ob_future_flesh"]
|
||||
# - [0x29A1A0, rodata, "_ob_future_flesh"]
|
||||
- [0x29A2E0, rodata]
|
||||
- [0x29A3B0, .rodata, "_ob_painstaking_mouth"]
|
||||
- [0x29A3B0, rodata, "_ob_painstaking_mouth"]
|
||||
|
||||
- { start: 0x29A4C0, type: bss, vram: 0x8023E580 }
|
||||
|
||||
|
|
|
|||
21
src/4D5C0.c
21
src/4D5C0.c
|
|
@ -8,7 +8,7 @@ OverlaySomething* func_801776C0(void) {
|
|||
/* 4D5CC 801776CC */
|
||||
void func_801776CC(void) {
|
||||
func_80198080(-1);
|
||||
D_800C4C26 = 0x800E;
|
||||
__maybeBlockingRetraceFunc = 0x800E;
|
||||
}
|
||||
|
||||
/* 4D5F4 801776F4 */
|
||||
|
|
@ -19,7 +19,7 @@ OverlaySomething* func_801776F4(void) {
|
|||
/* 4D600 80177700 */
|
||||
void func_80177700(void) {
|
||||
func_80198080(0x29);
|
||||
D_800C4C26 = 0x8014;
|
||||
__maybeBlockingRetraceFunc = 0x8014;
|
||||
}
|
||||
|
||||
/* 4D628 80177728 */
|
||||
|
|
@ -66,25 +66,16 @@ void __calls_inc_menu_timer(void) {
|
|||
func_80172394();
|
||||
func_8017223C(1);
|
||||
func_801707F4();
|
||||
D_800C4C26 = D_8018F1A2;
|
||||
__maybeBlockingRetraceFunc = D_8018F1A2;
|
||||
break;
|
||||
case 2:
|
||||
D_800C4C26 = 0x8012;
|
||||
__maybeBlockingRetraceFunc = 0x8012;
|
||||
break;
|
||||
case 3:
|
||||
D_800C4C26 = 0x17;
|
||||
__maybeBlockingRetraceFunc = 0x17;
|
||||
break;
|
||||
case 4:
|
||||
switch(D_8018FB34) {
|
||||
case 0:
|
||||
D_800C4C26 = 0xB;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
D_800C4C26 = 0xC;
|
||||
break;
|
||||
}
|
||||
|
||||
__maybeBlockingRetraceFunc = D_8018FB34 == 0 ? 0xB : 0xC;
|
||||
D_8018FB34 = (D_8018FB34 + 1) % 2;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,487 +1,487 @@
|
|||
#include "common.h"
|
||||
#include "os_message.h"
|
||||
// #include "common.h"
|
||||
// #include "os_message.h"
|
||||
|
||||
typedef struct {
|
||||
s32 field_0x0;
|
||||
u8 field_0x4[0xA0];
|
||||
s32 field_0x8;
|
||||
} SomethingMalloc;
|
||||
// typedef struct {
|
||||
// s32 field_0x0;
|
||||
// u8 field_0x4[0xA0];
|
||||
// s32 field_0x8;
|
||||
// } SomethingMalloc;
|
||||
|
||||
extern SomethingMalloc D_800E8300[];
|
||||
// extern SomethingMalloc D_800E8300[];
|
||||
|
||||
extern s32* D_800C4804;
|
||||
extern s32 D_800C480A;
|
||||
extern s32 D_800C49D2;
|
||||
extern s32* D_800C4AD4;
|
||||
extern s32* D_800C4B24;
|
||||
extern s32 D_800C4B28;
|
||||
extern s32* D_800C4BAC;
|
||||
extern s32 D_800C4BB0;
|
||||
extern s32 D_800C4BD0;
|
||||
extern s32* D_800C4BDC;
|
||||
extern s32* D_800C4BE0;
|
||||
extern s32* D_800C4BE8;
|
||||
extern s32* D_800C4C0C;
|
||||
extern s32* D_800C4C4C;
|
||||
extern s32 D_800E797C;
|
||||
extern s32 D_800E79BC;
|
||||
extern s32* D_800E7A08;
|
||||
extern s32 D_800E7A24;
|
||||
extern s32* D_800E7D6C;
|
||||
extern s32 D_800E8100;
|
||||
extern s32* D_800E8108;
|
||||
extern s32* D_800E9BC0;
|
||||
extern s32 __CONTROLLER_0_BUTTON;
|
||||
extern s32 __MAIN_START_BUT_CHECK;
|
||||
extern u8 __SOMETHING_WITH_GFX;
|
||||
// extern s32* D_800C4804;
|
||||
// extern s32 D_800C480A;
|
||||
// extern s32 D_800C49D2;
|
||||
// extern s32* D_800C4AD4;
|
||||
// extern s32* D_800C4B24;
|
||||
// extern s32 D_800C4B28;
|
||||
// extern s32* D_800C4BAC;
|
||||
// extern s32 D_800C4BB0;
|
||||
// extern s32 D_800C4BD0;
|
||||
// extern s32* D_800C4BDC;
|
||||
// extern s32* D_800C4BE0;
|
||||
// extern s32* D_800C4BE8;
|
||||
// extern s32* D_800C4C0C;
|
||||
// extern s32* D_800C4C4C;
|
||||
// extern s32 D_800E797C;
|
||||
// extern s32 D_800E79BC;
|
||||
// extern s32* D_800E7A08;
|
||||
// extern s32 D_800E7A24;
|
||||
// extern s32* D_800E7D6C;
|
||||
// extern s32 D_800E8100;
|
||||
// extern s32* D_800E8108;
|
||||
// extern s32* D_800E9BC0;
|
||||
// extern s32 __CONTROLLER_0_BUTTON;
|
||||
// extern s32 __MAIN_START_BUT_CHECK;
|
||||
// extern u8 __SOMETHING_WITH_GFX;
|
||||
|
||||
extern u16 D_800C4C10[6];
|
||||
// extern u16 D_800C4C10[6];
|
||||
|
||||
extern struct {
|
||||
s16 field_0x0;
|
||||
s8 field_0x2;
|
||||
s8 field_0x3;
|
||||
s8 field_0x4;
|
||||
} D_800AF0A0;
|
||||
// extern struct {
|
||||
// s16 field_0x0;
|
||||
// s8 field_0x2;
|
||||
// s8 field_0x3;
|
||||
// s8 field_0x4;
|
||||
// } D_800AF0A0;
|
||||
|
||||
extern s32 D_800AF0B0;
|
||||
extern s16 D_800C49D0;
|
||||
extern s32 D_800C4C20;
|
||||
extern s32 D_800E79A0;
|
||||
// extern s32 D_800AF0B0;
|
||||
// extern s16 D_800C49D0;
|
||||
// extern s32 D_800C4C20;
|
||||
// extern s32 D_800E79A0;
|
||||
|
||||
extern u8 D_800E82C8[0x3F0];
|
||||
// extern u8 D_800E82C8[0x3F0];
|
||||
|
||||
extern s16 D_800AF0A6[4];
|
||||
extern void* D_800AF090[4];
|
||||
extern void* D_800C47F0[4];
|
||||
// extern s16 D_800AF0A6[4];
|
||||
// extern void* D_800AF090[4];
|
||||
// extern void* D_800C47F0[4];
|
||||
|
||||
extern void func_8007819C();
|
||||
extern s32 func_80173B60(s32);
|
||||
// extern void func_8007819C();
|
||||
// extern s32 func_80173B60(s32);
|
||||
|
||||
extern OSMesgQueue obUnpackQueue;
|
||||
// extern OSMesgQueue obUnpackQueue;
|
||||
|
||||
void UnpackProc(void*);
|
||||
// void UnpackProc(void*);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", __calls_loads_overlay_array);
|
||||
// INCLUDE_ASM(const s32, "_ob_rabid_jar", __calls_loads_overlay_array);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076150);
|
||||
// INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076150);
|
||||
|
||||
/* 6550 80076150 */
|
||||
// s8 func_80076150(u16 arg0) {
|
||||
// switch (arg0) {
|
||||
// case 3:
|
||||
// case 4:
|
||||
// case 5:
|
||||
// case 6:
|
||||
// case 7:
|
||||
// case 10:
|
||||
// case 11:
|
||||
// case 15:
|
||||
// case 18:
|
||||
// case 23:
|
||||
// return 0;
|
||||
// default:
|
||||
// return 1;
|
||||
// }
|
||||
// /* 6550 80076150 */
|
||||
// // s8 func_80076150(u16 arg0) {
|
||||
// // switch (arg0) {
|
||||
// // case 3:
|
||||
// // case 4:
|
||||
// // case 5:
|
||||
// // case 6:
|
||||
// // case 7:
|
||||
// // case 10:
|
||||
// // case 11:
|
||||
// // case 15:
|
||||
// // case 18:
|
||||
// // case 23:
|
||||
// // return 0;
|
||||
// // default:
|
||||
// // return 1;
|
||||
// // }
|
||||
// // }
|
||||
|
||||
// /* 6588 80076188 */
|
||||
// OverlaySomething* func_80076188(void) {
|
||||
// return &D_800A872C;
|
||||
// }
|
||||
|
||||
/* 6588 80076188 */
|
||||
OverlaySomething* func_80076188(void) {
|
||||
return &D_800A872C;
|
||||
}
|
||||
|
||||
/* 6594 80076194 */
|
||||
void func_80076194(void) {
|
||||
D_800C4C26 = 0xFFFE;
|
||||
}
|
||||
|
||||
/* 65A4 800761A4 */
|
||||
void func_800761A4(void) {
|
||||
func_80073164(0, 1, 1, 0x80, 1, 0x100, 0x2000);
|
||||
}
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", __loads_overlay_array);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076324);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", __get_overlay_index);
|
||||
|
||||
/* 68E0 800764E0 */
|
||||
void func_800764E0(void) {
|
||||
u16 i;
|
||||
|
||||
osGetTime();
|
||||
bzero(D_800E82C8, sizeof(D_800E82C8));
|
||||
bzero(D_800C4C10, sizeof(D_800C4C10));
|
||||
|
||||
D_800C4C20 = 1;
|
||||
D_800E79A0 = 8;
|
||||
D_800C49D0 = 0;
|
||||
D_800AF0B0 = 0;
|
||||
D_800AF0A0.field_0x0 = 0;
|
||||
D_800AF0A0.field_0x3 = 0;
|
||||
D_800AF0A0.field_0x2 = 0;
|
||||
D_800AF0A0.field_0x4 = 0;
|
||||
|
||||
for(i = 0; i < 4; i++) {
|
||||
D_800AF0A6[i] = 0;
|
||||
D_800AF090[i] = &D_800AF0A0;
|
||||
}
|
||||
|
||||
obSetCurrentTime(osGetTime());
|
||||
|
||||
D_800AF0B0 = func_80173B60(D_800AF0B0);
|
||||
func_8007819C();
|
||||
}
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800765D8);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076AE8);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076DC8);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076E00);
|
||||
|
||||
/* 722C 80076E2C */
|
||||
void func_80076E2C(void) {
|
||||
D_800AF0B0 = func_80173B60(D_800AF0B0);
|
||||
}
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076E58);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076EAC);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076F00);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076F5C);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007705C);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077160);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077200);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077288);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077314);
|
||||
|
||||
/* 7768 80077368 */
|
||||
s32 UnusedMallocNo(s32 arg0) {
|
||||
s32 var_a1;
|
||||
SomethingMalloc** var_v1;
|
||||
|
||||
var_a1 = 0;
|
||||
var_v1 = &D_800E8300[arg0];
|
||||
loop_1:
|
||||
if (*var_v1 != 0) {
|
||||
var_a1 += 1;
|
||||
var_v1 += 1;
|
||||
if (var_a1 >= 10) {
|
||||
osSyncPrintf("UnusedMallocNo(): 空きがない!\n");
|
||||
while(1);
|
||||
}
|
||||
goto loop_1;
|
||||
}
|
||||
return var_a1;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800773D4);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007740C);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007745C);
|
||||
|
||||
/* 7894 80077494 */
|
||||
void func_80077494(s32 arg0) {
|
||||
if (arg0 == D_800C4C10[0]) {
|
||||
D_800C4BE0 = D_800C47F0;
|
||||
D_800E8108 = &__MAIN_START_BUT_CHECK;
|
||||
D_800C4BDC = &D_800E8100;
|
||||
D_800C4804 = &D_800C4BD0;
|
||||
D_800C4C0C = &D_800E79BC;
|
||||
D_800C4BE8 = &D_800C49D2;
|
||||
D_800C4AD4 = &D_800E7A24;
|
||||
D_800E9BC0 = &D_800E797C;
|
||||
D_800E7A08 = &D_800C480A;
|
||||
D_800C4BAC = &__SOMETHING_WITH_GFX + 4;
|
||||
D_800C4B24 = &D_800C4B28;
|
||||
D_800E7D6C = &D_800C4BB0;
|
||||
D_800C4C4C = &__CONTROLLER_0_BUTTON;
|
||||
} else {
|
||||
D_800C4BE0 = D_800AF090;
|
||||
D_800E8108 = &D_800AF0A6;
|
||||
D_800C4BDC = &D_800AF0A6;
|
||||
D_800C4804 = &D_800AF0A6;
|
||||
D_800C4C0C = &D_800AF0A6;
|
||||
D_800C4BE8 = &D_800AF0A6;
|
||||
D_800C4AD4 = &D_800AF0A6;
|
||||
D_800E9BC0 = &D_800AF0A6;
|
||||
D_800E7A08 = &D_800AF0A6;
|
||||
D_800C4BAC = &D_800AF0A6;
|
||||
D_800C4B24 = &D_800AF0A6;
|
||||
D_800E7D6C = &D_800AF0A6;
|
||||
D_800C4C4C = &D_800AF0A6;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800775EC);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077BF8);
|
||||
|
||||
void func_80077F80(void) { }
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077F88);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800780D4);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078164);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007819C);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800782EC);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078300);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007834C);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078658);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078674);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007896C);
|
||||
|
||||
// s32 func_8007338C(); /* extern */
|
||||
// extern s32 D_800E8210;
|
||||
|
||||
// /* 8D6C 8007896C */
|
||||
// void func_8007896C(s16 arg0, s16 arg1, s16 arg2, s16 arg3) {
|
||||
// s16 ulx;
|
||||
// s16 uly;
|
||||
// s16 lrx;
|
||||
// s16 lry;
|
||||
// // s32 temp_a0;
|
||||
//
|
||||
// lry = arg0;
|
||||
// lrx = arg1;
|
||||
// ulx = arg2;
|
||||
// uly = arg3;
|
||||
// if (func_8007338C() != 0) {
|
||||
// if (arg0 < 0) {
|
||||
// lry = 0;
|
||||
// } else if (arg0 >= 320) {
|
||||
// lry = 319;
|
||||
// }
|
||||
// if (lrx < 0) {
|
||||
// lrx = 0;
|
||||
// } else if (lrx >= 320) {
|
||||
// lrx = 319;
|
||||
// }
|
||||
// if (ulx < 0) {
|
||||
// ulx = 0;
|
||||
// } else if (ulx >= 320) {
|
||||
// ulx = 319;
|
||||
// }
|
||||
// if (uly < 0) {
|
||||
// uly = 0;
|
||||
// } else if (uly >= 240) {
|
||||
// uly = 239;
|
||||
// }
|
||||
//
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 8;
|
||||
// // temp_v0->unk8 = 0xE200001C;
|
||||
// // temp_v0->unkC = 0;
|
||||
// gDPSetRenderMode(obPtrDisplayList++, G_RM_NOOP, G_RM_NOOP2);
|
||||
//
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x28;
|
||||
// // temp_v0->unk28 = 0xE3000A01;
|
||||
// // temp_v0->unk2C = 0x00300000;
|
||||
// gDPSetCycleType(obPtrDisplayList++, G_CYC_FILL);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x30;
|
||||
// // temp_v0->unk30 = 0xE7000000U;
|
||||
// // temp_v0->unk34 = 0;
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x38;
|
||||
// // temp_v0->unk38 = 0xFE000000;
|
||||
// // temp_v0->unk3C = temp_a0;
|
||||
// gDPSetDepthImage(obPtrDisplayList++, D_800C4B20 - 0x80000000);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x40;
|
||||
// // temp_v0->unk40 = 0xFF10013F;
|
||||
// // temp_v0->unk44 = temp_a0;
|
||||
// gDPSetColorImage(obPtrDisplayList++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, D_800C4B20 - 0x80000000);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x48;
|
||||
// // temp_v0->unk48 = 0xF7000000;
|
||||
// // temp_v0->unk4C = 0xFFFCFFFC;
|
||||
// gDPSetFillColor(obPtrDisplayList++, 0xFFFCFFFC);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x50;
|
||||
// // temp_v0->unk50 = 0xE7000000U;
|
||||
// // temp_v0->unk54 = 0;
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x58;
|
||||
// // temp_v0->unk58 = (s32) (((ulx & 0x3FF) << 0xE) | (((uly & 0x3FF) * 4) | 0xF6000000));
|
||||
// // temp_v0->unk5C = (s32) (((lry & 0x3FF) << 0xE) | ((lrx & 0x3FF) * 4));
|
||||
// gDPFillRectangle(obPtrDisplayList++, ulx, uly, lrx, lry);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x60;
|
||||
// // temp_v0->unk60 = 0xE7000000U;
|
||||
// // temp_v0->unk64 = 0;
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x68;
|
||||
// // temp_v0->unk68 = 0xE7000000U;
|
||||
// // temp_v0->unk6C = 0;
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x70;
|
||||
// // temp_v0->unk70 = 0xE7000000U;
|
||||
// // temp_v0->unk74 = 0;
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x78;
|
||||
// // temp_v0->unk78 = 0xE7000000U;
|
||||
// // temp_v0->unk7C = 0;
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x80;
|
||||
// // temp_v0->unk80 = 0xFF10013F;
|
||||
// // temp_v0->unk84 = (s32) (D_800E8210 - 0x80000000);
|
||||
// gDPSetColorImage(obPtrDisplayList++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, D_800E8210 - 0x80000000);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x88;
|
||||
// // temp_v0->unk88 = 0xE7000000U;
|
||||
// // temp_v0->unk8C = 0;
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x90;
|
||||
// // temp_v0->unk90 = 0xE7000000U;
|
||||
// // temp_v0->unk94 = 0;
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0x98;
|
||||
// // temp_v0->unk98 = 0xE3000A01;
|
||||
// // temp_v0->unk9C = 0;
|
||||
// gDPSetCycleType(obPtrDisplayList++, G_CYC_1CYCLE);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0xA0;
|
||||
// // temp_v0->unkA0 = 0xE7000000U;
|
||||
// // temp_v0->unkA4 = 0;
|
||||
// gDPPipeSync(obPtrDisplayList++);
|
||||
//
|
||||
// // obPtrDisplayList = temp_v0 + 0xA8;
|
||||
// }
|
||||
// /* 6594 80076194 */
|
||||
// void func_80076194(void) {
|
||||
// __maybeBlockingRetraceFunc = 0xFFFE;
|
||||
// }
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078C6C);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079028);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007913C);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079358);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079380);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007938C);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079618);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079850);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800798AC);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079950);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079AFC);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079BD8);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079CB4);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079D60);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079D98);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079DF8);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079E50);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079E9C);
|
||||
|
||||
/* A29C 80079E9C */
|
||||
// Arg_800712C4* func_80079E9C(Arg_800712C4* arg0) {
|
||||
// Arg_800712C4* var_s0;
|
||||
|
||||
// var_s0 = arg0;
|
||||
// if (var_s0 != NULL) {
|
||||
// var_s0->field_0x10 = func_80079E9C(var_s0->field_0x10);
|
||||
// var_s0->field_0x14 = func_80079E9C(var_s0->field_0x14);
|
||||
// func_800712C4(var_s0->field_0x4);
|
||||
// func_800712C4(var_s0);
|
||||
// var_s0 = NULL;
|
||||
// }
|
||||
// return var_s0;
|
||||
// /* 65A4 800761A4 */
|
||||
// void func_800761A4(void) {
|
||||
// func_80073164(0, 1, 1, 0x80, 1, 0x100, 0x2000);
|
||||
// }
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079EF4);
|
||||
// INCLUDE_ASM(const s32, "_ob_rabid_jar", __loads_overlay_array);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079F70);
|
||||
// INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076324);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007A070);
|
||||
// INCLUDE_ASM(const s32, "_ob_rabid_jar", __get_overlay_index);
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", Unpack);
|
||||
// /* 68E0 800764E0 */
|
||||
// void func_800764E0(void) {
|
||||
// u16 i;
|
||||
|
||||
/* ABE0 8007A7E0 */
|
||||
u32 __read_u32_le(u8* arg0) {
|
||||
return (arg0[0] << 24) | (arg0[1] << 16) | (arg0[2] << 8) | arg0[3];
|
||||
}
|
||||
// osGetTime();
|
||||
// bzero(D_800E82C8, sizeof(D_800E82C8));
|
||||
// bzero(D_800C4C10, sizeof(D_800C4C10));
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007A80C);
|
||||
// D_800C4C20 = 1;
|
||||
// D_800E79A0 = 8;
|
||||
// D_800C49D0 = 0;
|
||||
// D_800AF0B0 = 0;
|
||||
// D_800AF0A0.field_0x0 = 0;
|
||||
// D_800AF0A0.field_0x3 = 0;
|
||||
// D_800AF0A0.field_0x2 = 0;
|
||||
// D_800AF0A0.field_0x4 = 0;
|
||||
|
||||
INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007AB30);
|
||||
// for(i = 0; i < 4; i++) {
|
||||
// D_800AF0A6[i] = 0;
|
||||
// D_800AF090[i] = &D_800AF0A0;
|
||||
// }
|
||||
|
||||
/* AF7C 8007AB7C */
|
||||
void obSendUnpackMesg(OBUnpackMesg* msg) {
|
||||
msg->format = 1;
|
||||
osSendMesg(&obUnpackQueue, msg, OS_MESG_BLOCK);
|
||||
}
|
||||
// obSetCurrentTime(osGetTime());
|
||||
|
||||
extern OSThread obThreadUnpackProc;
|
||||
extern OBUnpackMesg obUnpackMesgBuf[8];
|
||||
// D_800AF0B0 = func_80173B60(D_800AF0B0);
|
||||
// func_8007819C();
|
||||
// }
|
||||
|
||||
extern DECLARE_STACK(obStackUnpackProc, 0x80);
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800765D8);
|
||||
|
||||
/* AFAC 8007ABAC */
|
||||
void obUnpackThreadStart(OSId id, OSPri priority) {
|
||||
osCreateMesgQueue(&obUnpackQueue, (OSMesg)&obUnpackMesgBuf, 8);
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076AE8);
|
||||
|
||||
osCreateThread(&obThreadUnpackProc, id, UnpackProc, NULL, STACK_START(obStackUnpackProc), priority);
|
||||
osStartThread(&obThreadUnpackProc);
|
||||
}
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076DC8);
|
||||
|
||||
/* B030 8007AC30 */
|
||||
void UnpackProc(void* __unused) {
|
||||
OBUnpackMesg *msg = NULL;
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076E00);
|
||||
|
||||
while(1) {
|
||||
osRecvMesg(&obUnpackQueue, (OSMesg)&msg, 1);
|
||||
if (msg->format == 1) {
|
||||
Unpack(msg->buffer, msg->size);
|
||||
osSendMesg(msg->queue, msg, OS_MESG_BLOCK);
|
||||
} else {
|
||||
osSyncPrintf("UnpackProc: no supported format %d\n", msg->format);
|
||||
}
|
||||
}
|
||||
}
|
||||
// // /* 722C 80076E2C */
|
||||
// // void func_80076E2C(void) {
|
||||
// // D_800AF0B0 = func_80173B60(D_800AF0B0);
|
||||
// // }
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076E58);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076EAC);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076F00);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076F5C);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007705C);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077160);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077200);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077288);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077314);
|
||||
|
||||
// // /* 7768 80077368 */
|
||||
// // s32 UnusedMallocNo(s32 arg0) {
|
||||
// // s32 var_a1;
|
||||
// // SomethingMalloc** var_v1;
|
||||
|
||||
// // var_a1 = 0;
|
||||
// // var_v1 = &D_800E8300[arg0];
|
||||
// // loop_1:
|
||||
// // if (*var_v1 != 0) {
|
||||
// // var_a1 += 1;
|
||||
// // var_v1 += 1;
|
||||
// // if (var_a1 >= 10) {
|
||||
// // osSyncPrintf("UnusedMallocNo(): 空きがない!\n");
|
||||
// // while(1);
|
||||
// // }
|
||||
// // goto loop_1;
|
||||
// // }
|
||||
// // return var_a1;
|
||||
// // }
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800773D4);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007740C);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007745C);
|
||||
|
||||
// // /* 7894 80077494 */
|
||||
// // void func_80077494(s32 arg0) {
|
||||
// // if (arg0 == D_800C4C10[0]) {
|
||||
// // D_800C4BE0 = D_800C47F0;
|
||||
// // D_800E8108 = &__MAIN_START_BUT_CHECK;
|
||||
// // D_800C4BDC = &D_800E8100;
|
||||
// // D_800C4804 = &D_800C4BD0;
|
||||
// // D_800C4C0C = &D_800E79BC;
|
||||
// // D_800C4BE8 = &D_800C49D2;
|
||||
// // D_800C4AD4 = &D_800E7A24;
|
||||
// // D_800E9BC0 = &D_800E797C;
|
||||
// // D_800E7A08 = &D_800C480A;
|
||||
// // D_800C4BAC = &__SOMETHING_WITH_GFX + 4;
|
||||
// // D_800C4B24 = &D_800C4B28;
|
||||
// // D_800E7D6C = &D_800C4BB0;
|
||||
// // D_800C4C4C = &__CONTROLLER_0_BUTTON;
|
||||
// // } else {
|
||||
// // D_800C4BE0 = D_800AF090;
|
||||
// // D_800E8108 = &D_800AF0A6;
|
||||
// // D_800C4BDC = &D_800AF0A6;
|
||||
// // D_800C4804 = &D_800AF0A6;
|
||||
// // D_800C4C0C = &D_800AF0A6;
|
||||
// // D_800C4BE8 = &D_800AF0A6;
|
||||
// // D_800C4AD4 = &D_800AF0A6;
|
||||
// // D_800E9BC0 = &D_800AF0A6;
|
||||
// // D_800E7A08 = &D_800AF0A6;
|
||||
// // D_800C4BAC = &D_800AF0A6;
|
||||
// // D_800C4B24 = &D_800AF0A6;
|
||||
// // D_800E7D6C = &D_800AF0A6;
|
||||
// // D_800C4C4C = &D_800AF0A6;
|
||||
// // }
|
||||
// // }
|
||||
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800775EC);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077BF8);
|
||||
|
||||
// // void func_80077F80(void) { }
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80077F88);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800780D4);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078164);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007819C);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800782EC);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078300);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007834C);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078658);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078674);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007896C);
|
||||
|
||||
// // // s32 func_8007338C(); /* extern */
|
||||
// // // extern s32 D_800E8210;
|
||||
|
||||
// // // /* 8D6C 8007896C */
|
||||
// // // void func_8007896C(s16 arg0, s16 arg1, s16 arg2, s16 arg3) {
|
||||
// // // s16 ulx;
|
||||
// // // s16 uly;
|
||||
// // // s16 lrx;
|
||||
// // // s16 lry;
|
||||
// // // // s32 temp_a0;
|
||||
// // //
|
||||
// // // lry = arg0;
|
||||
// // // lrx = arg1;
|
||||
// // // ulx = arg2;
|
||||
// // // uly = arg3;
|
||||
// // // if (func_8007338C() != 0) {
|
||||
// // // if (arg0 < 0) {
|
||||
// // // lry = 0;
|
||||
// // // } else if (arg0 >= 320) {
|
||||
// // // lry = 319;
|
||||
// // // }
|
||||
// // // if (lrx < 0) {
|
||||
// // // lrx = 0;
|
||||
// // // } else if (lrx >= 320) {
|
||||
// // // lrx = 319;
|
||||
// // // }
|
||||
// // // if (ulx < 0) {
|
||||
// // // ulx = 0;
|
||||
// // // } else if (ulx >= 320) {
|
||||
// // // ulx = 319;
|
||||
// // // }
|
||||
// // // if (uly < 0) {
|
||||
// // // uly = 0;
|
||||
// // // } else if (uly >= 240) {
|
||||
// // // uly = 239;
|
||||
// // // }
|
||||
// // //
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 8;
|
||||
// // // // temp_v0->unk8 = 0xE200001C;
|
||||
// // // // temp_v0->unkC = 0;
|
||||
// // // gDPSetRenderMode(obPtrDisplayList++, G_RM_NOOP, G_RM_NOOP2);
|
||||
// // //
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x28;
|
||||
// // // // temp_v0->unk28 = 0xE3000A01;
|
||||
// // // // temp_v0->unk2C = 0x00300000;
|
||||
// // // gDPSetCycleType(obPtrDisplayList++, G_CYC_FILL);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x30;
|
||||
// // // // temp_v0->unk30 = 0xE7000000U;
|
||||
// // // // temp_v0->unk34 = 0;
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x38;
|
||||
// // // // temp_v0->unk38 = 0xFE000000;
|
||||
// // // // temp_v0->unk3C = temp_a0;
|
||||
// // // gDPSetDepthImage(obPtrDisplayList++, D_800C4B20 - 0x80000000);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x40;
|
||||
// // // // temp_v0->unk40 = 0xFF10013F;
|
||||
// // // // temp_v0->unk44 = temp_a0;
|
||||
// // // gDPSetColorImage(obPtrDisplayList++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, D_800C4B20 - 0x80000000);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x48;
|
||||
// // // // temp_v0->unk48 = 0xF7000000;
|
||||
// // // // temp_v0->unk4C = 0xFFFCFFFC;
|
||||
// // // gDPSetFillColor(obPtrDisplayList++, 0xFFFCFFFC);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x50;
|
||||
// // // // temp_v0->unk50 = 0xE7000000U;
|
||||
// // // // temp_v0->unk54 = 0;
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x58;
|
||||
// // // // temp_v0->unk58 = (s32) (((ulx & 0x3FF) << 0xE) | (((uly & 0x3FF) * 4) | 0xF6000000));
|
||||
// // // // temp_v0->unk5C = (s32) (((lry & 0x3FF) << 0xE) | ((lrx & 0x3FF) * 4));
|
||||
// // // gDPFillRectangle(obPtrDisplayList++, ulx, uly, lrx, lry);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x60;
|
||||
// // // // temp_v0->unk60 = 0xE7000000U;
|
||||
// // // // temp_v0->unk64 = 0;
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x68;
|
||||
// // // // temp_v0->unk68 = 0xE7000000U;
|
||||
// // // // temp_v0->unk6C = 0;
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x70;
|
||||
// // // // temp_v0->unk70 = 0xE7000000U;
|
||||
// // // // temp_v0->unk74 = 0;
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x78;
|
||||
// // // // temp_v0->unk78 = 0xE7000000U;
|
||||
// // // // temp_v0->unk7C = 0;
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x80;
|
||||
// // // // temp_v0->unk80 = 0xFF10013F;
|
||||
// // // // temp_v0->unk84 = (s32) (D_800E8210 - 0x80000000);
|
||||
// // // gDPSetColorImage(obPtrDisplayList++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, D_800E8210 - 0x80000000);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x88;
|
||||
// // // // temp_v0->unk88 = 0xE7000000U;
|
||||
// // // // temp_v0->unk8C = 0;
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x90;
|
||||
// // // // temp_v0->unk90 = 0xE7000000U;
|
||||
// // // // temp_v0->unk94 = 0;
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0x98;
|
||||
// // // // temp_v0->unk98 = 0xE3000A01;
|
||||
// // // // temp_v0->unk9C = 0;
|
||||
// // // gDPSetCycleType(obPtrDisplayList++, G_CYC_1CYCLE);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0xA0;
|
||||
// // // // temp_v0->unkA0 = 0xE7000000U;
|
||||
// // // // temp_v0->unkA4 = 0;
|
||||
// // // gDPPipeSync(obPtrDisplayList++);
|
||||
// // //
|
||||
// // // // obPtrDisplayList = temp_v0 + 0xA8;
|
||||
// // // }
|
||||
// // // }
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80078C6C);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079028);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007913C);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079358);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079380);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007938C);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079618);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079850);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_800798AC);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079950);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079AFC);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079BD8);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079CB4);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079D60);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079D98);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079DF8);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079E50);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079E9C);
|
||||
|
||||
// // /* A29C 80079E9C */
|
||||
// // // Arg_800712C4* func_80079E9C(Arg_800712C4* arg0) {
|
||||
// // // Arg_800712C4* var_s0;
|
||||
|
||||
// // // var_s0 = arg0;
|
||||
// // // if (var_s0 != NULL) {
|
||||
// // // var_s0->field_0x10 = func_80079E9C(var_s0->field_0x10);
|
||||
// // // var_s0->field_0x14 = func_80079E9C(var_s0->field_0x14);
|
||||
// // // func_800712C4(var_s0->field_0x4);
|
||||
// // // func_800712C4(var_s0);
|
||||
// // // var_s0 = NULL;
|
||||
// // // }
|
||||
// // // return var_s0;
|
||||
// // // }
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079EF4);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80079F70);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007A070);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", Unpack);
|
||||
|
||||
// // /* ABE0 8007A7E0 */
|
||||
// // u32 __read_u32_le(u8* arg0) {
|
||||
// // return (arg0[0] << 24) | (arg0[1] << 16) | (arg0[2] << 8) | arg0[3];
|
||||
// // }
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007A80C);
|
||||
|
||||
// // INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007AB30);
|
||||
|
||||
// // /* AF7C 8007AB7C */
|
||||
// // void obSendUnpackMesg(OBUnpackMesg* msg) {
|
||||
// // msg->format = 1;
|
||||
// // osSendMesg(&obUnpackQueue, msg, OS_MESG_BLOCK);
|
||||
// // }
|
||||
|
||||
// // extern OSThread obThreadUnpackProc;
|
||||
// // extern OBUnpackMesg obUnpackMesgBuf[8];
|
||||
|
||||
// // extern DECLARE_STACK(obStackUnpackProc, 0x80);
|
||||
|
||||
// // /* AFAC 8007ABAC */
|
||||
// // void obUnpackThreadStart(OSId id, OSPri priority) {
|
||||
// // osCreateMesgQueue(&obUnpackQueue, (OSMesg)&obUnpackMesgBuf, 8);
|
||||
|
||||
// // osCreateThread(&obThreadUnpackProc, id, UnpackProc, NULL, STACK_START(obStackUnpackProc), priority);
|
||||
// // osStartThread(&obThreadUnpackProc);
|
||||
// // }
|
||||
|
||||
// // /* B030 8007AC30 */
|
||||
// // void UnpackProc(void* __unused) {
|
||||
// // OBUnpackMesg *msg = NULL;
|
||||
|
||||
// // while(1) {
|
||||
// // osRecvMesg(&obUnpackQueue, (OSMesg)&msg, 1);
|
||||
// // if (msg->format == 1) {
|
||||
// // Unpack(msg->buffer, msg->size);
|
||||
// // osSendMesg(msg->queue, msg, OS_MESG_BLOCK);
|
||||
// // } else {
|
||||
// // osSyncPrintf("UnpackProc: no supported format %d\n", msg->format);
|
||||
// // }
|
||||
// // }
|
||||
// // }
|
||||
|
||||
|
|
|
|||
|
|
@ -5853,7 +5853,7 @@ u8 D_8018B484[] = { 0xFF, 0x3C, 0x44, 0x4C, 0x54, 0x9A, 0x60, 0x00 };
|
|||
u8 D_8018B48C[] = { 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x00 };
|
||||
|
||||
/* 61394 8018B494 */
|
||||
u16 (*FP_CLASS_GET_ITEM_1[])(u8 portrait, u8 class) = {
|
||||
u16 (*FP_CLASS_GET_ITEM_1[])(u8 portrait, ClassId class) = {
|
||||
class_get_item_upper_left,
|
||||
class_get_item_upper_right,
|
||||
class_get_item_lower_left,
|
||||
|
|
|
|||
|
|
@ -215,12 +215,10 @@ u8* __SOME_OVERLAY_ID_ARRAY[] = {
|
|||
D_800A86E4,
|
||||
D_800A86EC,
|
||||
D_800A86F0,
|
||||
D_800A86F8
|
||||
D_800A86F8,
|
||||
NULL
|
||||
};
|
||||
|
||||
/* 38B28 800A8728 */
|
||||
u32 D_800A8728 = NULL;
|
||||
|
||||
/* 38B2C 800A872C */
|
||||
OverlaySomething D_800A872C = {
|
||||
.setup = func_800761A4,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
#include "common.h"
|
||||
|
||||
s32 osEPiLinkHandle(OSPiHandle *EPiHandle)
|
||||
{
|
||||
u32 saveMask = __osDisableInt();
|
||||
EPiHandle->next = __osPiTable;
|
||||
__osPiTable = EPiHandle;
|
||||
__osRestoreInt(saveMask);
|
||||
return 0;
|
||||
}
|
||||
|
||||
34
src/main.c
34
src/main.c
|
|
@ -17,7 +17,7 @@ typedef struct {
|
|||
|
||||
void __calls_copy_controller_data(); /* extern */
|
||||
void __calls_loads_overlay_array(); /* extern */
|
||||
void __calls_osViSwapBuffer_8007307C(void**); /* extern */
|
||||
void gfxSwapCfbFunc(NUScTask*); /* extern */
|
||||
void __initialize_song_mem(); /* extern */
|
||||
void __set_obPtrPtrDisplayList(Gfx**); /* extern */
|
||||
void func_80070C60(s32*, s32); /* extern */
|
||||
|
|
@ -33,7 +33,7 @@ void func_80079380(); /* extern */
|
|||
void func_8008A040(); /* extern */
|
||||
void func_8009DAEC(); /* extern */
|
||||
void func_800E9CEC(); /* extern */
|
||||
void func_800EA714(); /* extern */
|
||||
void _main_stop_all_audio(); /* extern */
|
||||
void func_800EA8E0(); /* extern */
|
||||
void func_8016C900(); /* extern */
|
||||
void func_80179060(); /* extern */
|
||||
|
|
@ -41,7 +41,7 @@ void func_8017BDC0(); /* extern */
|
|||
void func_80184D70(); /* extern */
|
||||
|
||||
extern s32 D_800A81F4;
|
||||
extern s32 D_800A8204;
|
||||
extern s32 obFrameBuf;
|
||||
extern Unknown1 D_800ABD80;
|
||||
extern Unknown1 D_800E9C08;
|
||||
extern u8 D_800AEF98;
|
||||
|
|
@ -65,7 +65,7 @@ extern s32 D_800A81F4;
|
|||
extern s32 D_800A81F8;
|
||||
|
||||
extern s8 D_800AEF9A;
|
||||
extern void* D_800C4BB8;
|
||||
extern u16* obCurrentFrameBuf;
|
||||
|
||||
extern struct {
|
||||
// s32 field_0x0;
|
||||
|
|
@ -77,7 +77,6 @@ extern struct {
|
|||
extern u16 __MAIN_START_BUT_CHECK;
|
||||
extern s16 __MAIN_START_BUT_STATE;
|
||||
|
||||
extern void func_8007284C(u16);
|
||||
extern void func_8016AF80();
|
||||
extern void func_80197B70();
|
||||
extern void func_8007328C();
|
||||
|
|
@ -98,7 +97,14 @@ INCLUDE_ASM(const s32, "main", func_80070C60);
|
|||
|
||||
INCLUDE_ASM(const s32, "main", AddHeap);
|
||||
|
||||
INCLUDE_ASM(const s32, "main", func_80070F14);
|
||||
extern u16 D_800AEDE0;
|
||||
|
||||
void func_80070F14(void)
|
||||
{
|
||||
D_800AEDE0 = 1;
|
||||
D_800AEDE2 = 3;
|
||||
return;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(const s32, "main", __virtual_mem_alloc);
|
||||
|
||||
|
|
@ -145,7 +151,7 @@ INCLUDE_ASM(const s32, "main", func_80071E74);
|
|||
|
||||
INCLUDE_ASM(const s32, "main", obMain);
|
||||
|
||||
INCLUDE_ASM(const s32, "main", func_80072398);
|
||||
INCLUDE_ASM(const s32, "main", retraceFunc);
|
||||
|
||||
/* 2B10 80072710 */
|
||||
void func_80072710(void) {
|
||||
|
|
@ -155,7 +161,7 @@ void func_80072710(void) {
|
|||
}
|
||||
|
||||
/* 2B38 80072738 */
|
||||
void __set_vi_mode(s32 arg0) {
|
||||
void obSetViMode(s32 arg0) {
|
||||
switch (osTvType) {
|
||||
case OS_TV_NTSC:
|
||||
switch (arg0) {
|
||||
|
|
@ -210,10 +216,10 @@ loop_2:
|
|||
var_t0 += 1;
|
||||
var_a2 += 0x10;
|
||||
} while (var_t0 < 4);
|
||||
bzero(__GLOBAL_CONTROLLER_DATA_COPY, sizeof(__GLOBAL_CONTROLLER_DATA_COPY));
|
||||
bzero(obContData, sizeof(obContData));
|
||||
}
|
||||
|
||||
void func_8007284C(u16 __unused) {
|
||||
void obReadController(u16 __unused) {
|
||||
const u16 pattern_a = CONT_A | CONT_B | CONT_L | CONT_START;
|
||||
const u16 pattern_b = CONT_A | CONT_B | CONT_G | CONT_START;
|
||||
|
||||
|
|
@ -264,11 +270,11 @@ s32 func_80072944(void) {
|
|||
INCLUDE_ASM(const s32, "main", __calls_copy_controller_data);
|
||||
|
||||
/* 347C 8007307C */
|
||||
void __calls_osViSwapBuffer_8007307C(void** buffers)
|
||||
void gfxSwapCfbFunc(NUScTask* task)
|
||||
{
|
||||
u8 prev;
|
||||
|
||||
D_800C4BB8 = buffers[3];
|
||||
obCurrentFrameBuf = task->framebuffer;
|
||||
prev = __reset_compared_osTvType();
|
||||
|
||||
if (prev == OS_TV_TYPE_MPAL)
|
||||
|
|
@ -305,7 +311,7 @@ void __calls_osViSwapBuffer_8007307C(void** buffers)
|
|||
if (prev != OS_TV_TYPE_PAL)
|
||||
osViSetSpecialFeatures(OS_VI_DIVOT_ON | OS_VI_DITHER_FILTER_ON | OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF);
|
||||
|
||||
osViSwapBuffer(buffers[3]);
|
||||
osViSwapBuffer(task->framebuffer);
|
||||
}
|
||||
|
||||
/* 3564 80073164 */
|
||||
|
|
@ -385,7 +391,7 @@ void func_80073398(void) {
|
|||
nuGfxZBuffer = 0;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(const s32, "main", func_800733F8);
|
||||
INCLUDE_ASM(const s32, "main", _some_camera_setup);
|
||||
|
||||
/* 3BA0 800737A0 */
|
||||
void func_800737A0(void) {
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_daily_account", func_overlay_14EBE0_8020CDA0_15DF10);
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020D500_15E670);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020D5E4_15E754);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020D780_15E8F0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020DAA8_15EC18);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020DDD0_15EF40);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020E0F0_15F260);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020E394_15F504);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_devilish_crayon", D_overlay_14EBE0_80214E40_165FB0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020E524_15F694);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020E6C8_15F838);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020E7F4_15F964);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020E9A4_15FB14);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020E9E0_15FB50);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_devilish_crayon", func_overlay_14EBE0_8020EA18_15FB88);
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_gaudy_line", func_overlay_14EBE0_8020CE00_15DF70);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_gaudy_line", func_overlay_14EBE0_8020CE0C_15DF7C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_gaudy_line", func_overlay_14EBE0_8020CE8C_15DFFC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_gaudy_line", func_overlay_14EBE0_8020CEBC_15E02C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_gaudy_line", func_overlay_14EBE0_8020D210_15E380);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_gaudy_line", func_overlay_14EBE0_8020D328_15E498);
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_phobic_spot", func_overlay_14EBE0_801FDA70_14EBE0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_phobic_spot", func_overlay_14EBE0_801FE190_14F300);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_phobic_spot", func_overlay_14EBE0_801FE28C_14F3FC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_phobic_spot", func_overlay_14EBE0_801FF3E0_150550);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_phobic_spot", func_overlay_14EBE0_801FFEEC_15105C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_phobic_spot", func_overlay_14EBE0_802001A8_151318);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_phobic_spot", func_overlay_14EBE0_802004C4_151634);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_phobic_spot", func_overlay_14EBE0_8020078C_1518FC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_phobic_spot", func_overlay_14EBE0_80200A38_151BA8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_phobic_spot", func_overlay_14EBE0_80200AC0_151C30);
|
||||
|
|
@ -1,163 +0,0 @@
|
|||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80200DD0_151F40);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80200F70_1520E0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020122C_15239C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_802012D8_152448);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80201384_1524F4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_802014C8_152638);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020153C_1526AC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_802017C0_152930);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80201A44_152BB4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80201AFC_152C6C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80201B68_152CD8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80201C7C_152DEC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80201D1C_152E8C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80201D9C_152F0C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80201E4C_152FBC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80202140_1532B0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80202434_1535A4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80202728_153898);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_802027DC_15394C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80202840_1539B0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_802028A4_153A14);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80202928_153A98);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020296C_153ADC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80202B70_153CE0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80202E10_153F80);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80202F54_1540C4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80203050_1541C0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80203524_154694);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80203558_1546C8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80203D9C_154F0C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80203FA4_155114);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80204050_1551C0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80204120_155290);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80204210_155380);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020439C_15550C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80204B34_155CA4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80204B58_155CC8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80204B80_155CF0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80204BA4_155D14);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80204BE8_155D58);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80204C3C_155DAC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020521C_15638C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80205D20_156E90);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80205DC8_156F38);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80205F2C_15709C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80206340_1574B0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80206C70_157DE0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80206D78_157EE8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80206DBC_157F2C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80206DE4_157F54);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80206EB4_158024);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80207068_1581D8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80207210_158380);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80207380_1584F0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020746C_1585DC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020753C_1586AC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020766C_1587DC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80207C94_158E04);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020808C_1591FC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80208304_159474);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80208920_159A90);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80208A3C_159BAC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80208ADC_159C4C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80208BE4_159D54);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_80208E64_159FD4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020C284_15D3F4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_14EBE0/_ob_touted_bedroom", func_overlay_14EBE0_8020C7F4_15D964);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214D10_165E80);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214D30_165EA0);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214D54_165EC4);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214D84_165EF4);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214D9C_165F0C);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214DB4_165F24);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214DC4_165F34);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214DD4_165F44);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214DE4_165F54);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214E0C_165F7C);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214E1C_165F8C);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214E24_165F94);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214E2C_165F9C);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_14EBE0/_ob_touted_bedroom", D_overlay_14EBE0_80214E34_165FA4);
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_childlike_cherry", func_overlay_286BD0_8022D840_289780);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_childlike_cherry", func_overlay_286BD0_8022DDC4_289D04);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_childlike_cherry", func_overlay_286BD0_8022DDE4_289D24);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_childlike_cherry", func_overlay_286BD0_8022DF48_289E88);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_childlike_cherry", func_overlay_286BD0_8022DF8C_289ECC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_childlike_cherry", func_overlay_286BD0_8022E3D0_28A310);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_childlike_cherry", func_overlay_286BD0_8022E5F4_28A534);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_childlike_cherry", func_overlay_286BD0_8022E738_28A678);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_childlike_cherry", func_overlay_286BD0_8022E7A4_28A6E4);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_286BD0/_ob_childlike_cherry", D_overlay_286BD0_8023E178_29A0B8);
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_early_ghost", func_overlay_286BD0_8023DE10_299D50);
|
||||
|
|
@ -1,179 +0,0 @@
|
|||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022E870_28A7B0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022E8D4_28A814);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022E90C_28A84C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022E978_28A8B8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022E984_28A8C4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022EA9C_28A9DC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022EB0C_28AA4C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022EC34_28AB74);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022ECBC_28ABFC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022ED48_28AC88);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022ED9C_28ACDC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022EDEC_28AD2C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022EEB4_28ADF4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F024_28AF64);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F148_28B088);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F1A0_28B0E0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F264_28B1A4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F2D8_28B218);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F324_28B264);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F408_28B348);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F5C4_28B504);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F848_28B788);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F864_28B7A4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022F998_28B8D8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022FB60_28BAA0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022FC54_28BB94);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022FCD4_28BC14);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8022FD78_28BCB8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802300A8_28BFE8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802300D4_28C014);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80230360_28C2A0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80230ADC_28CA1C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80231098_28CFD8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802311B0_28D0F0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80231D58_28DC98);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80231EAC_28DDEC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80231F04_28DE44);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802320C0_28E000);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802321FC_28E13C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80232E20_28ED60);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023324C_28F18C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802339D8_28F918);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80233DA8_28FCE8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80233F38_28FE78);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80234078_28FFB8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802344D0_290410);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802348A8_2907E8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802348B8_2907F8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802348D0_290810);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802348E0_290820);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023498C_2908CC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80234B38_290A78);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80234D10_290C50);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80234DB8_290CF8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80234E10_290D50);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023519C_2910DC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802351C4_291104);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802351F0_291130);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80235254_291194);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80235914_291854);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802359B4_2918F4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802372C8_293208);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802376B8_2935F8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80237B7C_293ABC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80238910_294850);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80238A00_294940);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80238C4C_294B8C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80238D14_294C54);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80238EC4_294E04);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023906C_294FAC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802390AC_294FEC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80239160_2950A0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80239394_2952D4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802394A0_2953E0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80239570_2954B0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80239634_295574);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802396F0_295630);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_802397B8_2956F8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80239B14_295A54);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80239C5C_295B9C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80239E30_295D70);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_80239EE0_295E20);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023A398_2962D8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023A42C_29636C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023A5D8_296518);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023A814_296754);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023AA70_2969B0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023AB74_296AB4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_future_flesh", func_overlay_286BD0_8023AD10_296C50);
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023ADA0_296CE0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023AE70_296DB0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023B058_296F98);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023B0CC_29700C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023B15C_29709C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023B1EC_29712C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023B274_2971B4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023B45C_29739C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023B5A8_2974E8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023B704_297644);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023B85C_29779C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023B9B4_2978F4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023BB10_297A50);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023BBCC_297B0C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023BC1C_297B5C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023BD2C_297C6C);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_286BD0/_ob_painstaking_mouth", D_overlay_286BD0_8023E470_29A3B0);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_286BD0/_ob_painstaking_mouth", D_overlay_286BD0_8023E484_29A3C4);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_286BD0/_ob_painstaking_mouth", D_overlay_286BD0_8023E498_29A3D8);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_286BD0/_ob_painstaking_mouth", D_overlay_286BD0_8023E4AC_29A3EC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023BD88_297CC8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023C9D4_298914);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023CA08_298948);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023CC30_298B70);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023D2D8_299218);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023D3E4_299324);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023D480_2993C0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023D4AC_2993EC);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023D800_299740);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023DB88_299AC8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_painstaking_mouth", func_overlay_286BD0_8023DD68_299CA8);
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022AC90_286BD0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022B5EC_28752C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022B980_2878C0);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022B9B4_2878F4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022BAB8_2879F8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022BB0C_287A4C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022BB64_287AA4);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_286BD0/_ob_pathetic_action", D_overlay_286BD0_8023E130_29A070);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_286BD0/_ob_pathetic_action", D_overlay_286BD0_8023E138_29A078);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022C078_287FB8);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022D4A4_2893E4);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022D5C4_289504);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_286BD0/_ob_pathetic_action", func_overlay_286BD0_8022D618_289558);
|
||||
|
|
@ -86,8 +86,6 @@ INCLUDE_ASM(const s32, "overlay_87200/_ob_stiff_fact", func_overlay_87200_801E09
|
|||
|
||||
INCLUDE_ASM(const s32, "overlay_87200/_ob_stiff_fact", func_overlay_87200_801E1390_CDDF0);
|
||||
|
||||
INCLUDE_RODATA(const s32, "overlay_87200/_ob_stiff_fact", D_overlay_87200_801F0530_DCF90);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_87200/_ob_stiff_fact", func_overlay_87200_801E2BCC_CF62C);
|
||||
|
||||
INCLUDE_ASM(const s32, "overlay_87200/_ob_stiff_fact", func_overlay_87200_801E36F0_D0150);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
#include "class.h"
|
||||
#include "ability.h"
|
||||
#include "gender.h"
|
||||
#include "equipment.h"
|
||||
|
||||
INCLUDE_ASM(const s32, "segment_obdata/_ob_fierce_selection", func_8016D200);
|
||||
|
||||
|
|
@ -64,7 +66,7 @@ INCLUDE_ASM(const s32, "segment_obdata/_ob_fierce_selection", func_8016DB30);
|
|||
INCLUDE_ASM(const s32, "segment_obdata/_ob_fierce_selection", func_8016DB84);
|
||||
|
||||
/* 43AD8 8016DBD8 */
|
||||
u8 class_get_field_0x2c(u8 portrait, u8 class) {
|
||||
u8 class_get_field_0x2c(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].field_0x2c;
|
||||
|
||||
|
|
@ -72,7 +74,7 @@ u8 class_get_field_0x2c(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43B2C 8016DC2C */
|
||||
u8 obClassGetAbilityFront(u8 portrait, u8 class) {
|
||||
u8 obClassGetAbilityFront(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].ability_front;
|
||||
|
||||
|
|
@ -80,7 +82,7 @@ u8 obClassGetAbilityFront(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43B80 8016DC80 */
|
||||
u8 obClassGetAbilityFrontHits(u8 portrait, u8 class) {
|
||||
u8 obClassGetAbilityFrontHits(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].ability_front_hitcount;
|
||||
|
||||
|
|
@ -88,7 +90,7 @@ u8 obClassGetAbilityFrontHits(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43BD4 8016DCD4 */
|
||||
u8 obClassGetAbilityMiddle(u8 portrait, u8 class) {
|
||||
u8 obClassGetAbilityMiddle(u8 portrait, ClassId class) {
|
||||
s32 var_v0;
|
||||
|
||||
if (obClassData[portrait].field_0x45 != class) {
|
||||
|
|
@ -100,7 +102,7 @@ u8 obClassGetAbilityMiddle(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43C20 8016DD20 */
|
||||
u8 obClassGetAbilityMiddleHits(u8 portrait, u8 class) {
|
||||
u8 obClassGetAbilityMiddleHits(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].ability_middle_hitcount;
|
||||
|
||||
|
|
@ -108,7 +110,7 @@ u8 obClassGetAbilityMiddleHits(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43C74 8016DD74 */
|
||||
u8 obClassGetAbilityBack(u8 portrait, u8 class) {
|
||||
u8 obClassGetAbilityBack(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].ability_back;
|
||||
|
||||
|
|
@ -116,7 +118,7 @@ u8 obClassGetAbilityBack(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43CC8 8016DDC8 */
|
||||
u8 obClassGetAbilityBackHits(u8 portrait, u8 class) {
|
||||
u8 obClassGetAbilityBackHits(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].ability_back_hitcount;
|
||||
|
||||
|
|
@ -124,7 +126,7 @@ u8 obClassGetAbilityBackHits(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43D1C 8016DE1C */
|
||||
u8 class_get_field_0x4(u8 portrait, u8 class) {
|
||||
u8 class_get_field_0x4(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].field_0x4;
|
||||
|
||||
|
|
@ -132,7 +134,7 @@ u8 class_get_field_0x4(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43D70 8016DE70 */
|
||||
u8 obClassGetGender(u8 portrait, u8 class) {
|
||||
Gender obClassGetGender(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].gender;
|
||||
|
||||
|
|
@ -140,7 +142,7 @@ u8 obClassGetGender(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43DC4 8016DEC4 */
|
||||
u8 obClassGetLeadershipRank(u8 portrait, u8 class) {
|
||||
u8 obClassGetLeadershipRank(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].leadership_rank;
|
||||
|
||||
|
|
@ -148,7 +150,7 @@ u8 obClassGetLeadershipRank(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43E18 8016DF18 */
|
||||
u8 class_get_global_flag(u8 portrait, u8 class) {
|
||||
u8 class_get_global_flag(u8 portrait, ClassId class) {
|
||||
u8 var_a1;
|
||||
|
||||
var_a1 = class;
|
||||
|
|
@ -161,7 +163,7 @@ u8 class_get_global_flag(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43E88 8016DF88 */
|
||||
EquipmentId obClassGetItemUpperLeft(u8 portrait, u8 class) {
|
||||
EquipmentId obClassGetItemUpperLeft(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].item_upper_left;
|
||||
|
||||
|
|
@ -169,7 +171,7 @@ EquipmentId obClassGetItemUpperLeft(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43EDC 8016DFDC */
|
||||
EquipmentId obClassGetItemUpperRight(u8 portrait, u8 class) {
|
||||
EquipmentId obClassGetItemUpperRight(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].item_upper_right;
|
||||
|
||||
|
|
@ -177,7 +179,7 @@ EquipmentId obClassGetItemUpperRight(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43F30 8016E030 */
|
||||
EquipmentId obClassGetItemLowerLeft(u8 portrait, u8 class) {
|
||||
EquipmentId obClassGetItemLowerLeft(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].item_lower_left;
|
||||
|
||||
|
|
@ -185,7 +187,7 @@ EquipmentId obClassGetItemLowerLeft(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43F84 8016E084 */
|
||||
EquipmentId obClassGetItemLowerRight(u8 portrait, u8 class) {
|
||||
EquipmentId obClassGetItemLowerRight(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].item_lower_right;
|
||||
|
||||
|
|
@ -193,20 +195,20 @@ EquipmentId obClassGetItemLowerRight(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 43FD8 8016E0D8 */
|
||||
char* obClassGetAbilityFrontName(u8 portrait, u8 class) {
|
||||
u8 var_v0;
|
||||
char* obClassGetAbilityFrontName(u8 portrait, ClassId class) {
|
||||
AbilityId ability;
|
||||
|
||||
if (obClassData[portrait].field_0x45 == class) {
|
||||
var_v0 = obClassData[portrait].ability_front;
|
||||
ability = obClassData[portrait].ability_front;
|
||||
} else {
|
||||
var_v0 = obClassData[class].ability_front;
|
||||
ability = obClassData[class].ability_front;
|
||||
}
|
||||
|
||||
return obAbilityGetName(var_v0);
|
||||
return obAbilityGetName(ability);
|
||||
}
|
||||
|
||||
/* 44040 8016E140 */
|
||||
char* obClassGetAbilityMiddleName(u8 portrait, u8 class) {
|
||||
char* obClassGetAbilityMiddleName(u8 portrait, ClassId class) {
|
||||
// Possible a C macro wrapping?
|
||||
do {
|
||||
char* ret = obAbilityGetName(obClassData[class].ability_middle);
|
||||
|
|
@ -215,20 +217,20 @@ char* obClassGetAbilityMiddleName(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 44074 8016E174 */
|
||||
char* obClassGetAbilityBackName(u8 portrait, u8 class) {
|
||||
u8 var_v0;
|
||||
char* obClassGetAbilityBackName(u8 portrait, ClassId class) {
|
||||
AbilityId ability;
|
||||
|
||||
if (obClassData[portrait].field_0x45 == class) {
|
||||
var_v0 = obClassData[portrait].ability_back;
|
||||
ability = obClassData[portrait].ability_back;
|
||||
} else {
|
||||
var_v0 = obClassData[class].ability_back;
|
||||
ability = obClassData[class].ability_back;
|
||||
}
|
||||
|
||||
return obAbilityGetName(var_v0);
|
||||
return obAbilityGetName(ability);
|
||||
}
|
||||
|
||||
/* 440DC 8016E1DC */
|
||||
char* obClassGetName(u8 portrait, u8 class) {
|
||||
char* obClassGetName(u8 portrait, ClassId class) {
|
||||
if (obClassData[portrait].field_0x45 == class)
|
||||
return obClassData[portrait].name;
|
||||
|
||||
|
|
@ -236,7 +238,7 @@ char* obClassGetName(u8 portrait, u8 class) {
|
|||
}
|
||||
|
||||
/* 44130 8016E230 */
|
||||
u8 obClassGetAbility(u8 portrait, u8 class, u8 row)
|
||||
u8 obClassGetAbility(u8 portrait, ClassId class, u8 row)
|
||||
{
|
||||
if (obClassData[portrait].field_0x45 != class)
|
||||
portrait = class;
|
||||
|
|
@ -251,7 +253,7 @@ u8 obClassGetAbility(u8 portrait, u8 class, u8 row)
|
|||
}
|
||||
|
||||
/* 44238 8016E338 */
|
||||
u8 obClassGetAbilityHits(u8 portrait, u8 class, u8 row) {
|
||||
u8 obClassGetAbilityHits(u8 portrait, ClassId class, u8 row) {
|
||||
if (obClassData[portrait].field_0x45 != class)
|
||||
portrait = class;
|
||||
|
||||
|
|
@ -265,17 +267,17 @@ u8 obClassGetAbilityHits(u8 portrait, u8 class, u8 row) {
|
|||
}
|
||||
|
||||
/* 44340 8016E440 */
|
||||
char* obAbilityGetName(u8 index) {
|
||||
char* obAbilityGetName(AbilityId index) {
|
||||
return obAbilityData[index].name;
|
||||
}
|
||||
|
||||
/* 44358 8016E458 */
|
||||
u8 ability_get_field_0x4(u8 index) {
|
||||
u8 ability_get_field_0x4(AbilityId index) {
|
||||
return obAbilityData[index].field_0x4;
|
||||
}
|
||||
|
||||
/* 44370 8016E470 */
|
||||
Element obAbilityGetElement(u8 index, u16 arg1, u16 arg2, s32 arg3, u16 arg4) {
|
||||
Element obAbilityGetElement(AbilityId index, EquipmentId arg1, EquipmentId arg2, EquipmentId arg3, EquipmentId arg4) {
|
||||
u16 item_index;
|
||||
|
||||
if (obAbilityData[index].element != ELEMENT_INVALID && obAbilityData[index].element != 0xF)
|
||||
|
|
@ -296,7 +298,7 @@ Element obAbilityGetElement(u8 index, u16 arg1, u16 arg2, s32 arg3, u16 arg4) {
|
|||
INCLUDE_ASM(const s32, "segment_obdata/_ob_fierce_selection", func_8016E50C);
|
||||
|
||||
/* 44934 8016EA34 */
|
||||
u8 func_8016EA34(u8 portrait, u8 class, u8 arg2)
|
||||
u8 func_8016EA34(u8 portrait, ClassId class, u8 arg2)
|
||||
{
|
||||
if (obClassData[portrait].field_0x45 != class)
|
||||
portrait = class;
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ void func_800EA6B0(SomethingMusic* arg0, s32 arg1, s32 arg2) {
|
|||
|
||||
INCLUDE_ASM(const s32, "segment_song/_ob_knotty_chess", func_800EA6C8);
|
||||
|
||||
INCLUDE_ASM(const s32, "segment_song/_ob_knotty_chess", func_800EA714);
|
||||
INCLUDE_ASM(const s32, "segment_song/_ob_knotty_chess", _main_stop_all_audio);
|
||||
|
||||
INCLUDE_ASM(const s32, "segment_song/_ob_knotty_chess", func_800EA76C);
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,6 @@ for i in range(1, MAX_ABILITIES):
|
|||
|
||||
print(f"{name} = 0x{name_vaddr:X}")
|
||||
|
||||
# print(f"({i}):\t", (field_0x0, field_0x2, field_0x3, field_0x4, field_0x5,
|
||||
# field_0x6, field_0x7, field_0x8, field_0x9, field_0xa,
|
||||
# field_0xb))
|
||||
print(f"({i}):\t", (field_0x0, element, field_0x2, field_0x3, field_0x4, field_0x5,
|
||||
field_0x6, field_0x7, field_0x8, field_0x9, field_0xa,
|
||||
field_0xb))
|
||||
|
|
@ -4,7 +4,7 @@ from struct import unpack_from, calcsize
|
|||
from typing import NamedTuple
|
||||
import textwrap
|
||||
|
||||
import item_data
|
||||
import equipment_data as item_data
|
||||
|
||||
NAME_VADDR_START = 0x8016AF80
|
||||
NAME_ADDR_START = 0x40E80
|
||||
|
|
@ -94,18 +94,22 @@ if __name__ == "__main__":
|
|||
name_addr_diff = (class_data.name - NAME_VADDR_START) + NAME_ADDR_START
|
||||
name = read_rom(name_addr_diff, name_addr_diff + 32).split(b'\0', 1)[0]
|
||||
|
||||
print(f"Class= {name} ({i})\t")
|
||||
print(f"ItemUpperLeft= {item_data.item_get_name(item_data.item_read(class_data.item_upper_left).name)}")
|
||||
print(f"ItemUpperRight= {item_data.item_get_name(item_data.item_read(class_data.item_upper_right).name)}")
|
||||
print(f"ItemLowerLeft= {item_data.item_get_name(item_data.item_read(class_data.item_lower_left).name)}")
|
||||
print(f"ItemLowerRight= {item_data.item_get_name(item_data.item_read(class_data.item_lower_right).name)}")
|
||||
print(f"Class= {name} ({i})")
|
||||
# print(f"Gender={class_data.gender}")
|
||||
# print(f"Leadership rank={class_data.leadership_rank}")
|
||||
|
||||
# print(f"Leadership rank={class_data.leadership_rank}")
|
||||
|
||||
# print(f"ItemUpperLeft= {item_data.item_get_name(item_data.item_read(class_data.item_upper_left).name)}")
|
||||
# print(f"ItemUpperRight= {item_data.item_get_name(item_data.item_read(class_data.item_upper_right).name)}")
|
||||
# print(f"ItemLowerLeft= {item_data.item_get_name(item_data.item_read(class_data.item_lower_left).name)}")
|
||||
# print(f"ItemLowerRight= {item_data.item_get_name(item_data.item_read(class_data.item_lower_right).name)}")
|
||||
|
||||
unidentified = []
|
||||
for val in class_data._fields:
|
||||
if val.startswith("field_"):
|
||||
unidentified.append(f"{val}: {getattr(class_data, val)}")
|
||||
unidentified.append(f"{val}: {getattr(class_data, val)}")
|
||||
|
||||
print("Unidentified fields: ")
|
||||
print("Fields: ")
|
||||
print("\n".join(unidentified), end="")
|
||||
print()
|
||||
print("-----------------------------------------")
|
||||
|
|
|
|||
Loading…
Reference in New Issue