BSS And Libultra (#823)

* BSS refactor (the Wiseguy method)

* controller.c

* ldiv.c

* motor.c

* cartrominit.c

* more libultra matching + standardization

* more libultra stuff

* more

* clean

* warnings
This commit is contained in:
Ethan Roseman 2022-10-15 18:24:05 -04:00 committed by GitHub
parent fab07c1c8c
commit c700116f41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
85 changed files with 2930 additions and 1593 deletions

View File

@ -95,8 +95,8 @@
extern OSDevMgr __osPiDevMgr;
extern OSPiHandle *__osCurrentHandle[2];
extern OSPiHandle CartRomHandle;
extern OSPiHandle LeoDiskHandle;
extern OSPiHandle __Dom1SpeedParam;
extern OSPiHandle __Dom2SpeedParam;
extern OSMesgQueue __osPiAccessQueue;
extern u32 __osPiAccessQueueEnabled;
@ -105,6 +105,9 @@ void __osDevMgrMain(void *);
void __osPiCreateAccessQueue(void);
void __osPiRelAccess(void);
void __osPiGetAccess(void);
s32 __osPiRawStartDma(s32, u32 , void *, u32 );
s32 __osPiRawWriteIo(u32, u32);
s32 __osPiRawReadIo(u32, u32 *);
s32 __osEPiRawWriteIo(OSPiHandle *, u32 , u32);
s32 __osEPiRawReadIo(OSPiHandle *, u32 , u32 *);
s32 __osEPiRawStartDma(OSPiHandle *, s32 , u32 , void *, u32 );

View File

@ -594,6 +594,13 @@ The Indy development board use cartridge domain 1:
#define VI_CTRL_DIVOT_ON 0x00010 /* Bit 4: default = on */
#define VI_CTRL_SERRATE_ON 0x00040 /* Bit 6: on if interlaced */
#define VI_CTRL_ANTIALIAS_MASK 0x00300 /* Bit [9:8] anti-alias mode */
#define VI_CTRL_ANTIALIAS_MODE_1 0x00100 /* Bit [9:8] anti-alias mode */
#define VI_CTRL_ANTIALIAS_MODE_2 0x00200 /* Bit [9:8] anti-alias mode */
#define VI_CTRL_ANTIALIAS_MODE_3 0x00300 /* Bit [9:8] anti-alias mode */
#define VI_CTRL_PIXEL_ADV_MASK 0x01000 /* [15:12] pixel advance mode? */
#define VI_CTRL_PIXEL_ADV_1 0x01000 /* Bit [15:12] pixel advance mode? */
#define VI_CTRL_PIXEL_ADV_2 0x02000 /* Bit [15:12] pixel advance mode? */
#define VI_CTRL_PIXEL_ADV_3 0x03000 /* Bit [15:12] pixel advance mode? */
#define VI_CTRL_DITHER_FILTER_ON 0x10000 /* Bit 16: dither-filter mode */
/*

View File

@ -5,19 +5,19 @@
extern MenuPanel* filemenu_menus[4];
extern BSS s32 filemenu_iterFileIdx;
extern BSS s32 filemenu_pressedButtons;
extern BSS s32 filemenu_cursorHudElem;
extern BSS s32 filemenu_heldButtons;
extern BSS s8 filemenu_filename_pos;
extern BSS s32 filemenu_loadedFileIdx;
extern BSS s8 filemenu_currentMenu;
extern BSS s32 filemenu_8024C09C;
extern BSS s32 filemenu_cursorHudElemID[1];
extern BSS s32 filemenu_8024C0A4[3];
extern BSS s32 filemenu_hudElemIDs[20];
extern BSS s32 filemenu_createfile_hudElems[4];
extern BSS u8 filemenu_filename[8];
extern s32 filemenu_iterFileIdx;
extern s32 filemenu_pressedButtons;
extern s32 filemenu_cursorHudElem;
extern s32 filemenu_heldButtons;
extern s8 filemenu_filename_pos;
extern s32 filemenu_loadedFileIdx;
extern s8 filemenu_currentMenu;
extern s32 filemenu_8024C09C;
extern s32 filemenu_cursorHudElemID[1];
extern s32 filemenu_8024C0A4[3];
extern s32 filemenu_hudElemIDs[20];
extern s32 filemenu_createfile_hudElems[4];
extern u8 filemenu_filename[8];
#define WINDOW_UPDATE_FUNC(name) void (name)( \
s32 windowIdx,\

View File

@ -374,7 +374,6 @@ void btl_draw_upgrade_windows(s32);
void btl_state_draw_celebration(void);
void func_8024F7C8(void);
s32 func_80265D44(s32 animID);
void func_80263E08(Actor*, ActorPart*, s32);
void func_80266978(void);
void func_80266B14(void);
@ -494,7 +493,7 @@ ItemEntity* get_item_entity(s32 itemEntityIndex);
s32 make_item_entity_nodelay(s32 itemID, f32 x, f32 y, f32 z, s32 itemSpawnMode, s32 pickupVar);
void set_item_entity_flags(s32 itemEntityIndex, s32 flag);
s32 create_generic_entity_frontUI(s32 (*updateFunc)(void), void (*drawFunc)(void));
s32 create_generic_entity_frontUI(void (*updateFunc)(void), void (*drawFunc)(void));
DynamicEntity* get_generic_entity(s32 idx);
Trigger* bind_trigger_1(EvtScript* script, s32 flags, s32 triggerFlagIndex, s32 triggerVar0, s32 triggerVar1, s32 priority);
@ -669,6 +668,7 @@ s32 find_item(s32);
void enable_background_wave(void);
void set_map_change_fade_rate(s16);
void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType);
// State funcs
void state_init_startup(void);
@ -854,6 +854,7 @@ void func_8024E60C(void);
void dispatch_event_actor(Actor*, s32);
s32 dispatch_damage_event_actor_1(Actor* actor, s32 damageAmount, s32 event);
void reset_battle_status(void);
void btl_show_variable_battle_message(s32, s32, s32);
s32 btl_is_popup_displayed(void);
void btl_cam_use_preset_immediately(s32);
@ -889,6 +890,8 @@ void func_800EFD08(void);
void check_input_open_menus(void);
void check_input_status_menu(void);
void update_player(void);
void enforce_hpfp_limits(void);
s32 should_collider_allow_interact(s32);
void show_coin_counter(void);
@ -898,6 +901,8 @@ void hide_coin_counter_immediately(void);
void hide_popup_menu(void);
void destroy_popup_menu(void);
void reset_player_status(void);
void player_reset_data(void);
void partner_reset_data(void);
s32 has_valid_conversation_npc(void);
s32 func_800E06D8(void);
void func_800E4F10(void);

81
include/gcc/stdlib.h Normal file
View File

@ -0,0 +1,81 @@
#ifndef _STDLIB_H
#define _STDLIB_H
/*
stdlib.h
*/
#ifndef _SIZE_T_DEF
#define _SIZE_T_DEF
typedef unsigned size_t;
#endif
#ifndef _DIV_T_DEF
#define _DIV_T_DEF
typedef struct DIV_T {
int quot;
int rem;
} div_t;
#endif
#ifndef _LDIV_T_DEF
#define _LDIV_T_DEF
typedef struct LDIV_T {
long quot;
long rem;
} ldiv_t;
#endif
#ifndef _LLDIV_T_DEF
#define _LLDIV_T_DEF
typedef struct lldiv_t
{
long long quot;
long long rem;
} lldiv_t;
#endif
#ifndef NULL
#define NULL 0
#endif
#define _max(a,b) (((a) > (b)) ? (a) : (b))
#define _min(a,b) (((a) < (b)) ? (a) : (b))
#define RAND_MAX 32767
int rand(void);
void srand(unsigned);
int abs(int);
long labs(long);
div_t div(int,int);
ldiv_t ldiv(long,long);
lldiv_t lldiv(long long, long long);
int atoi(const char *);
long atol(const char *);
long strtol(const char *,char **,int);
unsigned long strtoul(const char *,char **,int);
char *itoa(int,char *,int);
char *ltoa(long,char *,int);
char *ultoa(unsigned long,char *,int);
double atof(const char *);
double strtod(const char *,char **);
void qsort(void *,size_t,size_t,int (*)(const void *,const void *));
void *bsearch(const void *,const void *,size_t,size_t,int (*)(const void *,const void *));
void *malloc(size_t);
void *calloc(size_t,size_t);
void *realloc(void *,size_t);
void free(void *);
void exit(int);
void abort(void);
#endif

View File

@ -12,6 +12,7 @@
#define TRANSPARENT_UNION
#endif
#define ALIGNED(x) __attribute__((aligned(x)))
#define ALIGN16(val) (((val) + 0xF) & ~0xF)
#define ALIGN8(val) (((val) + 0x7) & ~0x7)

View File

@ -130,7 +130,7 @@ extern s8 D_800A0920;
extern s32 D_800A0924;
extern s8 D_800A0921;
extern s16 D_800A0922;
extern s32 wMapTexName;
extern char wMapTexName[];
extern char wMapHitName[];
extern char wMapShapeName[];
extern struct ModelNode* D_80210000;

View File

@ -3,6 +3,7 @@
void init_enter_world_shared(void);
s16 update_enter_map_screen_overlay(s16* progress);
s32 update_exit_map_screen_overlay(s16* progress);
void set_map_change_fade_rate(s16 fadeRate) {
gMapTransitionFadeRate = fadeRate;

View File

@ -376,6 +376,7 @@ BSS s32 D_802AD6D4;
void func_800F513C(PopupMenu* popup);
s32 func_80265D44(s32 animID);
void func_802A3C98(s32 x, s32 y);
void func_802A43DC(s32 arg0, s32 x, s32 y);
void func_802A4448(s32 arg0, s32 x, s32 y);

View File

@ -3,20 +3,20 @@
#include "world/partners.h"
#include "macros.h"
BSS s16 D_8010C9C0;
BSS char D_8010C9C4[0x4];
BSS PopupMenu D_8010C9C8;
BSS s16 D_8010CCF8;
BSS s16 D_8010CCFA;
BSS s16 D_8010CCFC;
BSS s16 D_8010CCFE;
BSS s16 D_8010CD00;
BSS char D_8010CD04[0xC];
BSS s16 D_8010CD10;
BSS s16 D_8010CD12;
BSS char D_8010CD14[0xA];
BSS s32 D_8010CD20;
BSS char D_8010CD24[0xC];
s16 D_8010C9C0;
char D_8010C9C4[0x4];
PopupMenu D_8010C9C8;
s16 D_8010CCF8;
s16 D_8010CCFA;
s16 D_8010CCFC;
s16 D_8010CCFE;
s16 D_8010CD00;
char D_8010CD04[0xC];
s16 D_8010CD10;
s16 D_8010CD12;
char D_8010CD14[0xA];
s32 D_8010CD20;
char D_8010CD24[0xC];
#include "common.h"
#include "sprite.h"

View File

@ -1,13 +1,10 @@
#include "common.h"
#include "camera.h"
void update_camera_mode_4(Camera* camera);
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_4, Camera* camera);
void update_camera_mode_2(Camera* camera);
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_2, Camera* camera);
void update_camera_mode_1(Camera* camera);
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_1, Camera* camera);
void update_camera_mode_0(Camera* camera) {

View File

@ -1002,7 +1002,6 @@ s32 mdl_renderTaskBasePriorities[RENDER_MODE_COUNT] = {
s8 D_8014C248[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
// BSS
extern s32 B_801512B0[2];
extern ModelCustomGfxBuilderList* gCurrentCustomModelGfxBuildersPtr;
extern s32 D_801512BC;
extern s32 D_80151304;
@ -1016,7 +1015,6 @@ extern ModelTransformGroupList* gCurrentTransformGroups;
extern s8 gMsgGlobalWaveCounter[0x4];
extern ModelCustomGfxList* gCurrentCustomModelGfxPtr;
extern s32 gLastCreatedEntityIndex;
extern s8 B_801512F0[0x410];
extern GameMode gMainGameState[2]; // TODO rename
extern s32 gEntityHeapBottom;

View File

@ -7,7 +7,6 @@
#undef NAMESPACE
#define NAMESPACE battle_item_fright_jar
ApiStatus func_80269EAC(Evt* script, s32 isInitialCall);
ApiStatus N(FadeBackgroundToBlack)(Evt* script, s32 isInitialCall);
ApiStatus N(func_802A12D4_72BBE4)(Evt* script, s32 isInitialCall);

View File

@ -8,8 +8,6 @@
#undef NAMESPACE
#define NAMESPACE battle_item_pow_block
ApiStatus func_80269EAC(Evt* script, s32 isInitialCall);
ApiStatus N(func_802A1318_718B68)(Evt* script, s32 isInitialCall);
ApiStatus N(func_802A123C_718A8C)(Evt* script, s32 isInitialCall);
ApiStatus N(func_802A12E4_718B34)(Evt* script, s32 isInitialCall);

View File

@ -428,5 +428,3 @@ EntityBlueprint Entity_SpinningFlower = {
.entityType = ENTITY_TYPE_SPINNING_FLOWER,
.aabbSize = { 45, 22, 42 }
};
static const f32 rodata_padding[] = {0.0f, 0.0f};

View File

@ -893,7 +893,7 @@ s32 create_generic_entity_world(void (*updateFunc)(void), void (*drawFunc)(void)
return i;
}
s32 create_generic_entity_frontUI(s32 (*updateFunc)(void), void (*drawFunc)(void)) {
s32 create_generic_entity_frontUI(void (*updateFunc)(void), void (*drawFunc)(void)) {
s32 i;
DynamicEntity* newDynEntity;

View File

@ -48,8 +48,7 @@ Gfx D_80074230[] = {
gsSPEndDisplayList(),
};
// BSS
extern BSS s32 timeFreezeMode;
s32 timeFreezeMode;
extern s16 D_8009A690;

View File

@ -6,9 +6,6 @@
// TODO: create src/os/nusys/nuSched.h?
extern u64 nuScStack[NU_SC_STACK_SIZE / sizeof(u64)];
// probably should be at 0x8009A630, unless D_8009A630 (what's technically used in boot_idle) isn't nuIdleFunc
extern void (*nuIdleFunc)(void);
void nuBoot(void) {
osInitialize();
osCreateThread(&D_800A4270, NU_IDLE_THREAD_ID, boot_idle, NULL, &nuScStack, 10);

66
src/os/cartrominit.c Normal file
View File

@ -0,0 +1,66 @@
#include "macros.h"
#include "PR/os_internal.h"
#include "PR/R4300.h"
#include "PR/rcp.h"
#include "PR/piint.h"
OSPiHandle __CartRomHandle ALIGNED(8);
OSPiHandle *osCartRomInit(void)
{
u32 value;
u32 saveMask;
static int first = 1;
register u32 stat;
u32 latency;
u32 pulse;
u32 pageSize;
u32 relDuration;
__osPiGetAccess();
if (!first) {
__osPiRelAccess();
return &__CartRomHandle;
}
first = 0;
__CartRomHandle.type = DEVICE_TYPE_CART;
__CartRomHandle.baseAddress = PHYS_TO_K1(PI_DOM1_ADDR2);
__CartRomHandle.domain = PI_DOMAIN1;
__CartRomHandle.speed = 0;
bzero(&__CartRomHandle.transferInfo, sizeof(__OSTranxInfo));
while (stat = IO_READ(PI_STATUS_REG), stat & (PI_STATUS_DMA_BUSY | PI_STATUS_IO_BUSY)) {
;
}
latency = IO_READ(PI_BSD_DOM1_LAT_REG);
pageSize = IO_READ(PI_BSD_DOM1_PGS_REG);
relDuration = IO_READ(PI_BSD_DOM1_RLS_REG);
pulse = IO_READ(PI_BSD_DOM1_PWD_REG);
IO_WRITE(PI_BSD_DOM1_LAT_REG, 0xFF);
IO_WRITE(PI_BSD_DOM1_PGS_REG, 0);
IO_WRITE(PI_BSD_DOM1_RLS_REG, 3);
IO_WRITE(PI_BSD_DOM1_PWD_REG, 0xFF);
value = IO_READ(__CartRomHandle.baseAddress);
__CartRomHandle.latency = value & 0xFF;
__CartRomHandle.pageSize = (value >> 0x10) & 0xF;
__CartRomHandle.relDuration = (value >> 0x14) & 0xF;
__CartRomHandle.pulse = (value >> 8) & 0xFF;
IO_WRITE(PI_BSD_DOM1_LAT_REG, latency);
IO_WRITE(PI_BSD_DOM1_PGS_REG, pageSize);
IO_WRITE(PI_BSD_DOM1_RLS_REG, relDuration);
IO_WRITE(PI_BSD_DOM1_PWD_REG, pulse);
saveMask = __osDisableInt();
__CartRomHandle.next = __osPiTable;
__osPiTable = &__CartRomHandle;
__osRestoreInt(saveMask);
__osPiRelAccess();
return &__CartRomHandle;
}

View File

@ -1,10 +1,101 @@
#include "ultra64.h"
#include "include_asm.h"
#include "macros.h"
#include "PR/siint.h"
#include "PR/os_internal.h"
#include "controller.h"
u32 __osContinitialized = 0;
s32 __osContinitialized = 0;
INCLUDE_ASM(s32, "os/controller", osContInit, OSMesgQueue* arg0, u8* arg1, OSContStatus* arg2);
OSPifRam __osContPifRam ALIGNED(16);
u8 __osContLastCmd;
u8 __osMaxControllers;
INCLUDE_ASM(s32, "os/controller", osContGetInitData);
OSTimer __osEepromTimer;
OSMesgQueue __osEepromTimerQ ALIGNED(8);
OSMesg __osEepromTimerMsg;
INCLUDE_ASM(s32, "os/controller", osPackRequestData);
s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data) {
OSMesg dummy;
s32 ret = 0;
OSTime t;
OSTimer mytimer;
OSMesgQueue timerMesgQueue;
if (__osContinitialized != 0) {
return 0;
}
__osContinitialized = 1;
t = osGetTime();
if (t < OS_USEC_TO_CYCLES(500000)) {
osCreateMesgQueue(&timerMesgQueue, &dummy, 1);
osSetTimer(&mytimer, OS_USEC_TO_CYCLES(500000) - t, 0, &timerMesgQueue, &dummy);
osRecvMesg(&timerMesgQueue, &dummy, OS_MESG_BLOCK);
}
__osMaxControllers = 4;
__osPackRequestData(CONT_CMD_REQUEST_STATUS);
ret = __osSiRawStartDma(OS_WRITE, __osContPifRam.ramarray);
osRecvMesg(mq, &dummy, OS_MESG_BLOCK);
ret = __osSiRawStartDma(OS_READ, __osContPifRam.ramarray);
osRecvMesg(mq, &dummy, OS_MESG_BLOCK);
__osContGetInitData(bitpattern, data);
__osContLastCmd = CONT_CMD_REQUEST_STATUS;
__osSiCreateAccessQueue();
osCreateMesgQueue(&__osEepromTimerQ, &__osEepromTimerMsg, 1);
return ret;
}
void __osContGetInitData(u8* pattern, OSContStatus* data) {
u8* ptr;
__OSContRequesFormat requestHeader;
s32 i;
u8 bits;
bits = 0;
ptr = (u8*) __osContPifRam.ramarray;
for (i = 0; i < __osMaxControllers; i++, ptr += sizeof(requestHeader), data++) {
requestHeader = *(__OSContRequesFormat*)ptr;
data->errno = CHNL_ERR(requestHeader);
if (data->errno == 0) {
data->type = requestHeader.typel << 8 | requestHeader.typeh;
data->status = requestHeader.status;
bits |= 1 << i;
}
}
*pattern = bits;
}
void __osPackRequestData(u8 cmd) {
u8* ptr;
__OSContRequesFormat requestHeader;
s32 i;
for (i = 0; i < ARRLEN(__osContPifRam.ramarray); i++) {
__osContPifRam.ramarray[i] = 0;
}
__osContPifRam.pifstatus = CONT_CMD_EXE;
ptr = (u8*) __osContPifRam.ramarray;
requestHeader.dummy = CONT_CMD_NOP;
requestHeader.txsize = CONT_CMD_RESET_TX;
requestHeader.rxsize = CONT_CMD_RESET_RX;
requestHeader.cmd = cmd;
requestHeader.typeh = CONT_CMD_NOP;
requestHeader.typel = CONT_CMD_NOP;
requestHeader.status = CONT_CMD_NOP;
requestHeader.dummy1 = CONT_CMD_NOP;
for (i = 0; i < __osMaxControllers; i++) {
*(__OSContRequesFormat*)ptr = requestHeader;
ptr += sizeof(requestHeader);
}
*ptr = CONT_CMD_END;
}

24
src/os/epirawdma.c Normal file
View File

@ -0,0 +1,24 @@
#include "PR/piint.h"
s32 __osEPiRawStartDma(OSPiHandle *pihandle, s32 direction, u32 devAddr, void *dramAddr, u32 size)
{
u32 stat;
u32 domain;
EPI_SYNC(pihandle, stat, domain);
IO_WRITE(PI_DRAM_ADDR_REG, osVirtualToPhysical(dramAddr));
IO_WRITE(PI_CART_ADDR_REG, K1_TO_PHYS(pihandle->baseAddress | devAddr));
switch (direction)
{
case OS_READ:
IO_WRITE(PI_WR_LEN_REG, size - 1);
break;
case OS_WRITE:
IO_WRITE(PI_RD_LEN_REG, size - 1);
break;
default:
return -1;
}
return 0;
}

View File

@ -1,6 +1,29 @@
#include "ultra64.h"
#include "include_asm.h"
#include "gcc/stdlib.h"
INCLUDE_ASM(s32, "os/ldiv", ldiv);
ldiv_t ldiv(long num, long denom) {
ldiv_t ret;
INCLUDE_ASM(s32, "os/ldiv", lldiv);
ret.quot = num / denom;
ret.rem = num - denom * ret.quot;
if (ret.quot < 0 && ret.rem > 0) {
ret.quot++;
ret.rem -= denom;
}
return ret;
}
lldiv_t lldiv(long long num, long long denom) {
lldiv_t ret;
ret.quot = num / denom;
ret.rem = num - denom * ret.quot;
if (ret.quot < 0 && ret.rem > 0) {
ret.quot++;
ret.rem -= denom;
}
return ret;
}

View File

@ -1,8 +1,135 @@
#include "ultra64.h"
#include "macros.h"
#include "PR/os_internal.h"
#include "controller.h"
#include "include_asm.h"
#include "PR/siint.h"
INCLUDE_ASM(s32, "os/motor", __osMotorAccess, OSPfs* pfs, s32 unk);
extern OSPifRam __MotorDataBuf[MAXCONTROLLERS];
INCLUDE_ASM(s32, "os/motor", osMotorInit, OSMesgQueue* queue, OSPfs* pfs, int unk);
#define READFORMAT(ptr) ((__OSContRamReadFormat*)(ptr))
s32 __osMotorAccess(OSPfs* pfs, s32 flag) {
int i;
s32 ret;
u8* ptr = (u8*) &__MotorDataBuf[pfs->channel];
if (!(pfs->status & PFS_MOTOR_INITIALIZED)) {
return 5;
}
__osSiGetAccess();
__MotorDataBuf[pfs->channel].pifstatus = CONT_CMD_EXE;
ptr += pfs->channel;
for (i = 0; i < BLOCKSIZE; i++) {
READFORMAT(ptr)->data[i] = flag;
}
__osContLastCmd = CONT_CMD_END;
__osSiRawStartDma(OS_WRITE, &__MotorDataBuf[pfs->channel]);
osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK);
__osSiRawStartDma(OS_READ, &__MotorDataBuf[pfs->channel]);
osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK);
ret = READFORMAT(ptr)->rxsize & CHNL_ERR_MASK;
if (!ret) {
if (!flag) {
if (READFORMAT(ptr)->datacrc != 0) {
ret = PFS_ERR_CONTRFAIL;
}
} else {
if (READFORMAT(ptr)->datacrc != 0xEB) {
ret = PFS_ERR_CONTRFAIL;
}
}
}
__osSiRelAccess();
return ret;
}
static void _MakeMotorData(int channel, OSPifRam *mdata) {
u8 *ptr = (u8*) mdata->ramarray;
__OSContRamReadFormat ramreadformat;
int i;
ramreadformat.dummy = CONT_CMD_NOP;
ramreadformat.txsize = CONT_CMD_WRITE_PAK_TX;
ramreadformat.rxsize = CONT_CMD_WRITE_PAK_RX;
ramreadformat.cmd = CONT_CMD_WRITE_PAK;
ramreadformat.addrh = CONT_BLOCK_RUMBLE >> 3;
ramreadformat.addrl = (u8)(__osContAddressCrc(CONT_BLOCK_RUMBLE) | (CONT_BLOCK_RUMBLE << 5));
if (channel != 0) {
for (i = 0; i < channel; i++) {
*ptr++ = CONT_CMD_REQUEST_STATUS;
}
}
*READFORMAT(ptr) = ramreadformat;
ptr += sizeof(__OSContRamReadFormat);
ptr[0] = CONT_CMD_END;
}
s32 osMotorInit(OSMesgQueue *mq, OSPfs *pfs, int channel) {
s32 ret;
u8 temp[32];
pfs->queue = mq;
pfs->channel = channel;
pfs->activebank = 0xFF;
pfs->status = 0;
ret = __osPfsSelectBank(pfs, 0xFE);
if (ret == PFS_ERR_NEW_PACK) {
ret = __osPfsSelectBank(pfs, 0x80);
}
if (ret != 0) {
return ret;
}
ret = __osContRamRead(mq, channel, CONT_BLOCK_DETECT, temp);
if (ret == PFS_ERR_NEW_PACK) {
ret = PFS_ERR_CONTRFAIL;
}
if (ret != 0) {
return ret;
}
if (temp[31] == 254) {
return PFS_ERR_DEVICE;
}
ret = __osPfsSelectBank(pfs, 0x80);
if (ret == PFS_ERR_NEW_PACK) {
ret = PFS_ERR_CONTRFAIL;
}
if (ret != 0) {
return ret;
}
ret = __osContRamRead(mq, channel, CONT_BLOCK_DETECT, temp);
if (ret == PFS_ERR_NEW_PACK) {
ret = PFS_ERR_CONTRFAIL;
}
if (ret != 0) {
return ret;
}
if (temp[31] != 0x80) {
return PFS_ERR_DEVICE;
}
if (!(pfs->status & PFS_MOTOR_INITIALIZED)) {
_MakeMotorData(channel, &__MotorDataBuf[channel]);
}
pfs->status = PFS_MOTOR_INITIALIZED;
return 0;
}

View File

@ -16,7 +16,6 @@ extern NUScTask nuGfxTask[NU_GFX_TASK_NUM];
extern s32 D_800DA040;
extern s32 D_800B91D0;
extern u8 rspbootUcodeBuffer[];
extern u32 nuGfxCfbCounter;
extern OSMesgQueue D_800DA47C;
void nuGfxTaskMgr(void) {

View File

@ -1,6 +0,0 @@
#include "ultra64.h"
#include "include_asm.h"
u32 D_80093D80 = 1;
INCLUDE_ASM(OSPiHandle*, "os/osCartRomInit", osCartRomInit, void);

View File

@ -1,14 +0,0 @@
#include "ultra64.h"
#include "include_asm.h"
OSDevMgr __osPiDevMgr = {0};
OSPiHandle* __osPiTable = NULL;
extern OSPiHandle CartRomHandle;
extern OSPiHandle LeoDiskHandle;
OSPiHandle* __osCurrentHandle[2] = {&CartRomHandle, &LeoDiskHandle};
INCLUDE_ASM(void, "os/osCreatePiManager", osCreatePiManager, OSPri prio, OSMesgQueue* queue, OSMesg* mesg, s32 unk);
INCLUDE_ASM(s32, "os/osCreatePiManager", osEPiRawStartDma, OSPiHandle* arg0, s32 dir, u32 cart_addr, void* dram_addr,
u32 size);

View File

@ -1,6 +0,0 @@
#include "PR/os_internal.h"
#include "PR/rcp.h"
void osSpTaskYield(void) {
__osSpSetStatus(SP_SET_YIELD);
}

66
src/os/pimgr.c Normal file
View File

@ -0,0 +1,66 @@
// #include "ultra64.h"
// #include "include_asm.h"
// OSDevMgr __osPiDevMgr = {0};
// OSPiHandle* __osPiTable = NULL;
// extern OSPiHandle __Dom1SpeedParam;
// extern OSPiHandle __Dom2SpeedParam;
// OSPiHandle* __osCurrentHandle[2] = {&__Dom1SpeedParam, &__Dom2SpeedParam};
// INCLUDE_ASM(void, "os/osCreatePiManager", osCreatePiManager, OSPri prio, OSMesgQueue* queue, OSMesg* mesg, s32 unk);
#include "macros.h"
#include "PR/os_internal.h"
#include "PR/piint.h"
OSDevMgr __osPiDevMgr = {0};
OSPiHandle *__osPiTable = NULL;
OSPiHandle __Dom1SpeedParam ALIGNED(8);
OSPiHandle __Dom2SpeedParam ALIGNED(8);
OSPiHandle *__osCurrentHandle[2] ALIGNED(8) = {&__Dom1SpeedParam, &__Dom2SpeedParam};
extern OSThread piThread;
extern char piThreadStack[OS_PIM_STACKSIZE];
extern OSMesgQueue piEventQueue;
extern OSMesg piEventBuf[1];
void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgCnt) {
u32 savedMask;
OSPri oldPri;
OSPri myPri;
if (!__osPiDevMgr.active) {
osCreateMesgQueue(cmdQ, cmdBuf, cmdMsgCnt);
osCreateMesgQueue(&piEventQueue, (OSMesg*)piEventBuf, 1);
if (!__osPiAccessQueueEnabled) {
__osPiCreateAccessQueue();
}
osSetEventMesg(OS_EVENT_PI, &piEventQueue, (OSMesg)0x22222222);
oldPri = -1;
myPri = osGetThreadPri(NULL);
if (myPri < pri) {
oldPri = myPri;
osSetThreadPri(NULL, pri);
}
savedMask = __osDisableInt();
__osPiDevMgr.active = 1;
__osPiDevMgr.thread = &piThread;
__osPiDevMgr.cmdQueue = cmdQ;
__osPiDevMgr.evtQueue = &piEventQueue;
__osPiDevMgr.acsQueue = &__osPiAccessQueue;
__osPiDevMgr.dma = __osPiRawStartDma;
__osPiDevMgr.edma = __osEPiRawStartDma;
osCreateThread(&piThread, 0, __osDevMgrMain, &__osPiDevMgr, &piThreadStack[OS_PIM_STACKSIZE], pri);
osStartThread(&piThread);
__osRestoreInt(savedMask);
if (oldPri != -1) {
osSetThreadPri(NULL, oldPri);
}
}
}

6
src/os/spsetstat.c Normal file
View File

@ -0,0 +1,6 @@
#include "PR/os_internal.h"
#include "PR/rcp.h"
void __osSpSetStatus(u32 data) {
IO_WRITE(SP_STATUS_REG, data);
}

View File

@ -1,6 +1,6 @@
#include "PR/os_internal.h"
#include "PR/rcp.h"
void __osSpSetStatus(u32 data) {
IO_WRITE(SP_STATUS_REG, data);
void osSpTaskYield(void) {
__osSpSetStatus(SP_SET_YIELD);
}

View File

@ -1,5 +1,12 @@
#include "PR/osint.h"
OSTimer *__osTimerList = &__osBaseTimer;
OSTimer __osBaseTimer;
OSTime __osCurrentTime;
u32 __osBaseCounter;
u32 __osViIntrCount;
u32 __osTimerCounter;
void __osTimerServicesInit(void) {
__osCurrentTime = 0;
__osBaseCounter = 0;

View File

@ -1,4 +1,6 @@
#include "ultra64.h"
#include "include_asm.h"
#include "PR/os_internal.h"
#include "PR/viint.h"
INCLUDE_ASM(s32, "os/vigetcurrcontext", osViGetCurrentContext);
__OSViContext *__osViGetCurrentContext(void) {
return __osViCurr;
}

View File

@ -1,6 +1,117 @@
#include "ultra64.h"
#include "include_asm.h"
#include "macros.h"
#include "PR/os_internal.h"
#include "PR/rcp.h"
#include "PR/viint.h"
#include "PR/osint.h"
INCLUDE_ASM(void, "os/vimgr", osCreateViManager, OSPri pri);
OSDevMgr __osViDevMgr = {0};
u32 __additional_scanline = 0;
INCLUDE_ASM(s32, "os/vimgr", viMgrMain);
extern OSThread viThread;
extern unsigned char viThreadStack[OS_VIM_STACKSIZE] ALIGNED(16);
extern OSMesgQueue viEventQueue;
extern OSMesg viEventBuf[5] ALIGNED(8);
extern OSIoMesg viRetraceMsg ALIGNED(8);
extern OSIoMesg viCounterMsg ALIGNED(8);
static void viMgrMain(void *arg);
void osCreateViManager(OSPri pri) {
u32 savedMask;
OSPri myPri;
OSPri oldPri;
if (!__osViDevMgr.active) {
__osTimerServicesInit();
__additional_scanline = 0;
osCreateMesgQueue(&viEventQueue, viEventBuf, ARRAY_COUNT(viEventBuf));
viRetraceMsg.hdr.type = OS_MESG_TYPE_VRETRACE;
viRetraceMsg.hdr.pri = OS_MESG_PRI_NORMAL;
viRetraceMsg.hdr.retQueue = NULL;
viCounterMsg.hdr.type = OS_MESG_TYPE_COUNTER;
viCounterMsg.hdr.pri = OS_MESG_PRI_NORMAL;
viCounterMsg.hdr.retQueue = NULL;
osSetEventMesg(OS_EVENT_VI, &viEventQueue, &viRetraceMsg);
osSetEventMesg(OS_EVENT_COUNTER, &viEventQueue, &viCounterMsg);
oldPri = -1;
myPri = osGetThreadPri(NULL);
if (myPri < pri) {
oldPri = myPri;
osSetThreadPri(NULL, pri);
}
savedMask = __osDisableInt();
__osViDevMgr.active = TRUE;
__osViDevMgr.thread = &viThread;
__osViDevMgr.cmdQueue = &viEventQueue;
__osViDevMgr.evtQueue = &viEventQueue;
__osViDevMgr.acsQueue = NULL;
__osViDevMgr.dma = NULL;
__osViDevMgr.edma = NULL;
osCreateThread(&viThread, 0, viMgrMain, &__osViDevMgr, &viThreadStack[OS_VIM_STACKSIZE], pri);
__osViInit();
osStartThread(&viThread);
__osRestoreInt(savedMask);
if (oldPri != -1) {
osSetThreadPri(0, oldPri);
}
}
}
extern u16 retrace;
static void viMgrMain(void *arg) {
__OSViContext *vc;
OSDevMgr *dm;
OSIoMesg *mb;
//static u16 retrace;
s32 first;
u32 count;
mb = NULL;
first = 0;
vc = __osViGetCurrentContext();
retrace = vc->retraceCount;
if (retrace == 0)
retrace = 1;
dm = (OSDevMgr *)arg;
while (TRUE) {
osRecvMesg(dm->evtQueue, (OSMesg)&mb, OS_MESG_BLOCK);
switch (mb->hdr.type) {
case OS_MESG_TYPE_VRETRACE:
__osViSwapContext();
retrace--;
if (retrace == 0) {
vc = __osViGetCurrentContext();
if (vc->msgq != NULL)
osSendMesg(vc->msgq, vc->msg, OS_MESG_NOBLOCK);
retrace = vc->retraceCount;
}
__osViIntrCount++;
if (first) {
count = osGetCount();
__osCurrentTime = count;
first = 0;
}
count = __osBaseCounter;
__osBaseCounter = osGetCount();
count = __osBaseCounter - count;
__osCurrentTime = __osCurrentTime + count;
break;
case OS_MESG_TYPE_COUNTER:
__osTimerInterrupt();
break;
}
}
}
// INCLUDE_ASM(void, "os/vimgr", osCreateViManager, OSPri pri);
// INCLUDE_ASM(s32, "os/vimgr", viMgrMain);

1742
src/os/vitbl.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
#include "flo_03.h"
void fx_sun();
void fx_sun_undeclared(s32, s32, s32, s32, s32, s32);
ApiStatus N(func_80240000_CA72A0)(Evt* script, s32 isInitialCall) {
fx_sun(1, 0, 0, 0, 0, 0);
fx_sun_undeclared(1, 0, 0, 0, 0, 0);
return ApiStatus_DONE2;
}

View File

@ -1,8 +1,8 @@
#include "flo_09.h"
void fx_sun();
void fx_sun_undeclared(s32, s32, s32, s32, s32, s32);
ApiStatus N(func_80240000_CB5000)(Evt* script, s32 isInitialCall) {
fx_sun(1, 0, 0, 0, 0, 0);
fx_sun_undeclared(1, 0, 0, 0, 0, 0);
return ApiStatus_DONE2;
}

View File

@ -1,8 +1,8 @@
#include "flo_10.h"
void fx_sun();
void fx_sun_undeclared(s32, s32, s32, s32, s32, s32);
ApiStatus N(func_80240040_CB9240)(Evt* script, s32 isInitialCall) {
fx_sun(1, 0, 0, 0, 0, 0);
fx_sun_undeclared(1, 0, 0, 0, 0, 0);
return ApiStatus_DONE2;
}

View File

@ -1,8 +1,8 @@
#include "flo_16.h"
void fx_sun();
void fx_sun_undeclared(s32, s32, s32, s32, s32, s32);
ApiStatus N(func_80240000_CD1E30)(Evt* script, s32 isInitialCall) {
fx_sun(1, 0, 0, 0, 0, 0);
fx_sun_undeclared(1, 0, 0, 0, 0, 0);
return ApiStatus_DONE2;
}

View File

@ -1,8 +1,8 @@
#include "flo_17.h"
void fx_sun();
void fx_sun_undeclared(s32, s32, s32, s32, s32, s32);
ApiStatus N(func_80240000_CD72E0)(Evt* script, s32 isInitialCall) {
fx_sun(1, 0, 0, 0, 0, 0);
fx_sun_undeclared(1, 0, 0, 0, 0, 0);
return ApiStatus_DONE2;
}

View File

@ -1421,9 +1421,9 @@ NpcGroupList N(npcGroupList_80245AEC) = {
#include "world/common/atomic/TexturePan.inc.c"
EffectInstance* fx_sun();
EffectInstance* fx_sun_undeclared(s32, s32, s32, s32, s32, s32);
ApiStatus N(func_80240B00_CE7200)(Evt* script, s32 isInitialCall) {
fx_sun(1, 0, 0, 0, 0, 0);
fx_sun_undeclared(1, 0, 0, 0, 0, 0);
return ApiStatus_DONE2;
}

View File

@ -385,9 +385,9 @@ static s32 N(pad_1594)[] = {
0x00000000, 0x00000000, 0x00000000,
};
void fx_sun();
void fx_sun_undeclared(s32, s32, s32, s32, s32, s32);
ApiStatus N(func_80240000_CEC240)(Evt* script, s32 isInitialCall) {
fx_sun(1, 0, 0, 0, 0, 0);
fx_sun_undeclared(1, 0, 0, 0, 0, 0);
return ApiStatus_DONE2;
}

View File

@ -1,8 +1,8 @@
#include "flo_24.h"
void fx_sun();
void fx_sun_undeclared(s32, s32, s32, s32, s32, s32);
ApiStatus N(func_80240000_CF0940)(Evt* script, s32 isInitialCall) {
fx_sun(1, 0, 0, 0, 0, 0);
fx_sun_undeclared(1, 0, 0, 0, 0, 0);
return ApiStatus_DONE2;
}

View File

@ -3,7 +3,6 @@
#include "hud_element.h"
extern EvtScript N(EVS_Main);
void reset_battle_status(void);
EntryList N(Entrances) = {
{ 0.0, 0.0, 0.0, 90.0 }, /* gv_01_ENTRY_0 */
@ -22,16 +21,16 @@ MapSettings N(settings) = {
#include "world/common/atomic/TexturePan.data.inc.c"
s32 N(DropLetterYCurve)[] = {
200, 170, 140, 110, 80, 50, 20, 10,
26, 29, 30, 29, 26, 10, 0, 12,
15, 16, 15, 11, 6, 0, 4, 3,
1, 0,
200, 170, 140, 110, 80, 50, 20, 10,
26, 29, 30, 29, 26, 10, 0, 12,
15, 16, 15, 11, 6, 0, 4, 3,
1, 0,
};
s32 N(DropLastLetterYCurve)[] = {
200, 170, 140, 110, 80, 50, 20, 0,
12, 15, 16, 15, 11, 6, 0, 4,
3, 1, 0,
200, 170, 140, 110, 80, 50, 20, 0,
12, 15, 16, 15, 11, 6, 0, 4,
3, 1, 0,
};
API_CALLABLE(N(FadeToTitleScreen));

View File

@ -1,10 +1,10 @@
#include "hos_00.h"
extern char D_800D9668[];
extern char wMapBgName[];
ApiStatus func_80240000_A0BCF0(Evt* script, s32 isInitialCall) {
if (gGameStatusPtr->entryID == 3) {
sprintf(D_800D9668, "hos_bg\0\0\0\0\0\0\0\0\0");
sprintf(wMapBgName, "hos_bg\0\0\0\0\0\0\0\0\0");
}
return ApiStatus_BLOCK;
}

View File

@ -1,10 +1,10 @@
#include "kkj_14.h"
extern char D_800D9668[];
extern char wMapBgName[];
ApiStatus func_80240000_ADAEA0(Evt* script, s32 isInitialCall) {
if (evt_get_variable(NULL, GB_StoryProgress) == -128) {
sprintf(D_800D9668, "nok_bg");
sprintf(wMapBgName, "nok_bg");
}
return ApiStatus_BLOCK;
}

View File

@ -1,10 +1,10 @@
#include "osr_01.h"
extern s8 D_800D9668;
extern s8 wMapBgName;
ApiStatus func_80240000_AAFFF0(Evt* script, s32 isInitialCall) {
if (gGameStatusPtr->entryID == 3) {
sprintf(&D_800D9668, "hos_bg");
sprintf(&wMapBgName, "hos_bg");
}
return ApiStatus_BLOCK;
}

View File

@ -7,7 +7,6 @@ extern s16 D_8010C97A;
s32 entity_interacts_with_current_partner(s32);
s32 test_item_entity_position(f32, f32, f32, f32);
s32 npc_raycast_up_corner(s32 ignoreFlags, f32* x, f32* y, f32* z, f32* length);
s32 npc_raycast_up(s32 ignoreFlags, f32* x, f32* y, f32* z, f32* length);
void fx_damage_stars(s32, f32, f32, f32, f32, f32, f32, s32);
void func_801341B0(s32);

View File

@ -6,8 +6,6 @@
extern s16 D_8010C97A;
void partner_kill_ability_script(void);
BSS f32 OriginalPlayerY;
BSS s32 bss_802BFEE4;
BSS s32 bss_802BFEE8;

View File

@ -2,85 +2,6 @@
#include "partners.h"
#include "macros.h"
extern s32 D_8010CD20;
// BSS
BSS s32 D_8010CD34;
BSS PlayerPathElement gPlayerMoveHistory[40];
BSS s32 gPlayerMoveHistoryIndex;
BSS s32 D_8010CFBC;
BSS f32 wPartnerTetherDistance;
BSS s32 D_8010CFC4;
BSS s16 wPartnerFollowState;
BSS s16 D_8010CFCA;
BSS s16 D_8010CFCC;
BSS s16 D_8010CFCE;
BSS s32 wPartnerNpcIndex;
BSS Evt* wPartnerCurrentScript;
BSS s32 wCurrentPartnerId;
BSS s32 wPartnerCurrentScriptID;
BSS s32 D_8010CFE0;
BSS s32 D_8010CFE4;
BSS s32 D_8010CFE8;
BSS WorldPartner* wPartner;
BSS s32 D_8010CFF0;
BSS s32 D_8010CFF4;
BSS char D_8010CFF8[0x8];
BSS s32 D_8010D000;
BSS char D_8010D004[0x63C];
BSS s32 D_8010D640;
BSS s32 D_8010D644;
BSS s32 D_8010D648;
BSS s32 D_8010D64C;
BSS s32 D_8010D650;
BSS s8 D_8010D654;
BSS s8 D_8010D655;
BSS s16 D_8010D656;
BSS s16 D_8010D658;
BSS s16 D_8010D65A;
BSS s32 D_8010D65C;
BSS s32 D_8010D660;
BSS s32 D_8010D664;
BSS s32 D_8010D668;
BSS s32 D_8010D66C;
BSS s32 D_8010D670;
BSS s32 D_8010D674;
BSS s32 D_8010D678;
BSS s16 D_8010D67C;
BSS s16 D_8010D67E;
BSS s16 D_8010D680;
BSS s16 D_8010D682;
BSS s16 D_8010D684;
BSS s16 D_8010D686;
BSS s16 D_8010D688;
BSS s16 D_8010D68A;
BSS s16 D_8010D68C;
BSS s8 D_8010D68E;
BSS s8 D_8010D68F;
BSS s8 D_8010D690;
BSS s8 D_8010D691;
BSS s8 D_8010D692;
BSS s8 D_8010D693;
BSS s32 D_8010D694;
BSS s8 D_8010D698;
BSS s8 D_8010D699;
BSS s16 D_8010D69A;
BSS s32 gPopupMenu;
BSS s32 D_8010D6A0;
BSS s32 D_8010D6A4;
BSS char D_8010D6A8[0x8];
BSS char D_8010D6B0[0x1500];
BSS PartnerActionStatus gPartnerActionStatus;
BSS char gSpinHistoryPosY[0x18];
BSS char gSpinHistoryPosX[0x18];
BSS char gSpinHistoryPosZ[0x18];
BSS UiStatus gUIStatus;
BSS PlayerStatus gPlayerStatus;
BSS PlayerSpinState gPlayerSpinState;
BSS s8 D_8010F284[0xC];
BSS PlayerData gPlayerData;
BSS s8 gSpinHistoryPosAngle[0x18];
#include "ld_addrs.h"
#include "npc.h"
#include "hud_element.h"
@ -118,6 +39,28 @@ BSS s8 gSpinHistoryPosAngle[0x18];
#include "partner/twink.h"
#include "sprite/npc/Twink.h"
extern s32 D_8010CD20;
// BSS
BSS s32 D_8010CD34;
BSS PlayerPathElement gPlayerMoveHistory[40];
BSS s32 gPlayerMoveHistoryIndex;
BSS s32 D_8010CFBC;
extern f32 wPartnerTetherDistance;
extern s32 D_8010CFC4;
extern s16 wPartnerFollowState;
extern s16 D_8010CFCA;
extern s16 D_8010CFCC;
extern s16 D_8010CFCE;
extern s32 wPartnerNpcIndex;
extern Evt* wPartnerCurrentScript;
extern s32 wCurrentPartnerId;
extern s32 wPartnerCurrentScriptID;
extern s32 D_8010CFE0;
extern s32 D_8010CFE4;
extern s32 D_8010CFE8;
extern WorldPartner* wPartner;
extern HudScript HES_Partner0;
extern HudScript HES_Goombario;
extern HudScript HES_Kooper;
@ -168,7 +111,6 @@ extern HudScript HES_StatusSPIncrement5;
extern HudScript HES_StatusSPIncrement6;
extern HudScript HES_StatusSPIncrement7;
extern s32 D_802C0000;
extern EvtScript EVS_World_UseItem;
s32 partner_is_idle(Npc* partner);
@ -196,10 +138,13 @@ HudScript* DigitHudScripts[] = {
};
HudScript* TimesHudScript = &HES_StatusTimes;
HudScript* SlashHudScript = &HES_StatusSlash;
HudScript* SPIncrementHudScripts[] = { &HES_StatusSPIncrement1, &HES_StatusSPIncrement3, &HES_StatusSPIncrement2,
&HES_StatusSPIncrement4, &HES_StatusSPIncrement5, &HES_StatusSPIncrement6, &HES_StatusSPIncrement7 };
HudScript* SPIncrementHudScripts[] = {
&HES_StatusSPIncrement1, &HES_StatusSPIncrement3, &HES_StatusSPIncrement2,
&HES_StatusSPIncrement4, &HES_StatusSPIncrement5, &HES_StatusSPIncrement6, &HES_StatusSPIncrement7
};
HudScript* SPStarHudScripts[] = { &HES_StatusStar1, &HES_StatusStar3, &HES_StatusStar2, &HES_StatusStar4,
&HES_StatusStar5, &HES_StatusStar6, &HES_StatusStar7 };
&HES_StatusStar5, &HES_StatusStar6, &HES_StatusStar7
};
s32 D_800F7FE8 = -1;
s32 D_800F7FEC = 1;
@ -949,8 +894,6 @@ void _use_partner_ability(void) {
}
}
static const f32 rodata_padding = 0.0f;
void switch_to_partner(s32 arg0) {
PlayerStatus* playerStatus = &gPlayerStatus;

View File

@ -12,10 +12,10 @@
s32 D_8008FF60[] = { 0, 1, 2, 3 };
// bss
extern MapSettings gMapSettings;
extern MapConfig* gMapConfig;
MapSettings gMapSettings;
MapConfig* gMapConfig;
extern s32 D_800D9668;
extern char wMapBgName[];
typedef struct {
/* 0x00 */ char name[16];
@ -24,6 +24,9 @@ typedef struct {
/* 0x18 */ u32 decompressedLength;
} AssetHeader; // size = 0x1C
void fio_deserialize_state(void);
void load_map_hit_asset(void);
void load_map_script_lib(void) {
dma_copy((u8 *) &world_script_api_ROM_START, (u8 *) &world_script_api_ROM_END, &world_script_api_VRAM);
}
@ -64,15 +67,15 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
mapConfig = &gAreas[areaID].maps[mapID];
sprintf(&wMapShapeName, "%s_shape", mapConfig->id);
sprintf(&wMapHitName, "%s_hit", mapConfig->id);
sprintf(wMapShapeName, "%s_shape", mapConfig->id);
sprintf(wMapHitName, "%s_hit", mapConfig->id);
strcpy(texStr, mapConfig->id);
texStr[3] = '\0';
sprintf(&wMapTexName, "%s_tex", texStr);
sprintf(wMapTexName, "%s_tex", texStr);
gMapConfig = mapConfig;
if (mapConfig->bgName != NULL) {
strcpy(&D_800D9668, mapConfig->bgName);
strcpy(wMapBgName, mapConfig->bgName);
}
load_map_script_lib();
@ -89,7 +92,7 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
if (initStatus == 0) {
s32* place = &D_80210000;
s32 yay0Asset = load_asset_by_name(&wMapShapeName, &decompressedSize);
void* yay0Asset = load_asset_by_name(wMapShapeName, &decompressedSize);
decode_yay0(yay0Asset, place);
general_heap_free(yay0Asset);
@ -101,7 +104,7 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
}
if (mapConfig->bgName != NULL) {
load_map_bg(&D_800D9668);
load_map_bg(wMapBgName);
}
func_8002D160();
@ -145,7 +148,7 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
sfx_reset_door_sounds();
if (initStatus == 0) {
s32 thing = get_asset_offset(&wMapTexName, &decompressedSize);
s32 thing = get_asset_offset(wMapTexName, &decompressedSize);
if (mapSettings->modelTreeRoot != NULL) {
load_data_for_models(mapSettings->modelTreeRoot, thing, decompressedSize);

View File

@ -65,7 +65,7 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra
CPPFLAGS_272 = "-Iver/$version/build/include -Iinclude -Isrc -Iassets/$version -D_LANGUAGE_C -D_FINALROM " \
"-DVERSION=$version -DF3DEX_GBI_2 -D_MIPS_SZLONG=32 -nostdinc"
cflags = f"-c -G0 -O2 -x c -fno-common -B {BUILD_TOOLS}/cc/gcc/ {extra_cflags}"
cflags = f"-c -G0 -O2 -x c -B {BUILD_TOOLS}/cc/gcc/ {extra_cflags}"
cflags_272 = f"-c -G0 -mgp32 -mfp32 -mips3 {extra_cflags}"
cflags_272 = cflags_272.replace("-ggdb3","-g1")
@ -398,6 +398,8 @@ class Configure:
)
# Not dead cod
else:
if seg.get_most_parent().name not in ["main", "engine1", "engine2"]:
cflags += " -fno-common"
build(entry.object_path, entry.src_paths, task, variables={
"cflags": cflags,
"cppflags": f"-DVERSION_{self.version.upper()}",

View File

@ -94,7 +94,7 @@ dlabel nuGfxTaskSpool
dlabel __osContLastCmd
.space 4
dlabel D_8009A620
dlabel __osEepromTimerMsg
.space 4
dlabel D_8009A624
@ -106,7 +106,7 @@ dlabel gAuAmbienceManager
dlabel __osTimerCounter
.space 4
dlabel D_8009A630
dlabel nuIdleFunc
.space 4
dlabel gCurrentCamID
@ -661,16 +661,19 @@ dlabel nuContDataMutexBuf
dlabel D_800AC6D8
.space 8
dlabel piMgrThread
.space 0x000011b0
dlabel piThread
.space 0x1B0
dlabel __osPiMesgQueue
dlabel piThreadStack
.space 0x1000
dlabel piEventQueue
.space 4
dlabel D_800AF890
.space 0x00000014
dlabel piMgrMesgBuff
dlabel piEventBuf
.space 4
dlabel D_800AF8AC
@ -691,31 +694,34 @@ dlabel siAccessBuf
dlabel D_800AF904
.space 0x0000000c
dlabel D_800AF910
dlabel retrace
.space 4
dlabel D_800AF914
.space 4
dlabel D_800AF918
dlabel viThread
.space 4
dlabel D_800AF91C
.space 0x000011b4
.space 0x1B4
dlabel D_800B0AD0
dlabel viThreadStack
.space 0x1000
dlabel viEventQueue
.space 4
dlabel D_800B0AD4
.space 0x00000014
dlabel D_800B0AE8
dlabel viEventBuf
.space 4
dlabel D_800B0AEC
.space 0x00000014
dlabel D_800B0B00
dlabel viRetraceMsg
.space 2
dlabel D_800B0B02
@ -727,7 +733,7 @@ dlabel D_800B0B04
dlabel D_800B0B08
.space 0x00000010
dlabel D_800B0B18
dlabel viCounterMsg
.space 2
dlabel D_800B0B1A
@ -739,7 +745,7 @@ dlabel D_800B0B1C
dlabel D_800B0B20
.space 0x00000010
dlabel D_800B0B30
dlabel __MotorDataBuf
.space 4
dlabel D_800B0B34
@ -817,7 +823,7 @@ dlabel D_800B0F0C
dlabel gCurrentEncounter
.space 0x00000bf8
dlabel LeoDiskHandle
dlabel __Dom2SpeedParam
.space 4
dlabel D_800B1B0C
@ -865,7 +871,7 @@ dlabel nuGfxMesgQ
dlabel D_800B42F4
.space 0x00000014
dlabel D_800B4308
dlabel __CartRomHandle
.space 4
dlabel D_800B430C
@ -904,7 +910,7 @@ dlabel D_800B4384
dlabel gEffectInstances
.space 0x00000180
dlabel CartRomHandle
dlabel __Dom1SpeedParam
.space 4
dlabel D_800B451C
@ -941,7 +947,10 @@ dlabel wMapHitName
.space 0x00000018
dlabel nuSiMgrMesgQ
.space 0x00000038
.space 0x00000018
dlabel __osBaseTimer
.space 0x20
dlabel wMapShapeName
.space 0x00000018
@ -958,7 +967,7 @@ dlabel D_800D95E8
dlabel D_800D9620
.space 0x00000048
dlabel D_800D9668
dlabel wMapBgName
.space 0x00000018
dlabel __osPfsInodeCache
@ -1009,7 +1018,7 @@ dlabel D_800DAABC
dlabel D_800DAABD
.space 3
dlabel D_800DAAC0
dlabel __osEepromTimerQ
.space 0x00000018
dlabel nuContPfs

View File

@ -111,3 +111,45 @@ dlabel D_8010C9B0
dlabel D_8010C9B4
.space 0x0000000c
dlabel D_8010C9C0
.space 4
dlabel D_8010C9C4
.space 4
dlabel D_8010C9C8
.space 0x330
dlabel D_8010CCF8
.space 2
dlabel D_8010CCFA
.space 2
dlabel D_8010CCFC
.space 2
dlabel D_8010CCFE
.space 2
dlabel D_8010CD00
.space 4
dlabel D_8010CD04
.space 0xC
dlabel D_8010CD10
.space 2
dlabel D_8010CD12
.space 2
dlabel D_8010CD14
.space 0xC
dlabel D_8010CD20
.space 4
dlabel D_8010CD24
.space 0xC

221
ver/us/asm/bss2_2.s Normal file
View File

@ -0,0 +1,221 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .bss
dlabel wPartnerTetherDistance
.space 4
dlabel D_8010CFC4
.space 4
dlabel wPartnerFollowState
.space 2
dlabel D_8010CFCA
.space 2
dlabel D_8010CFCC
.space 2
dlabel D_8010CFCE
.space 2
dlabel wPartnerNpcIndex
.space 4
dlabel wPartnerCurrentScript
.space 4
dlabel wCurrentPartnerId
.space 4
dlabel wPartnerCurrentScriptID
.space 4
dlabel D_8010CFE0
.space 4
dlabel D_8010CFE4
.space 4
dlabel D_8010CFE8
.space 4
dlabel wPartner
.space 4
dlabel D_8010CFF0
.space 4
dlabel D_8010CFF4
.space 4
dlabel D_8010CFF8
.space 8
dlabel D_8010D000
.space 4
dlabel D_8010D004
.space 0x63C
dlabel D_8010D640
.space 4
dlabel D_8010D644
.space 4
dlabel D_8010D648
.space 4
dlabel D_8010D64C
.space 4
dlabel D_8010D650
.space 4
dlabel D_8010D654
.space 1
dlabel D_8010D655
.space 1
dlabel D_8010D656
.space 2
dlabel D_8010D658
.space 2
dlabel D_8010D65A
.space 2
dlabel D_8010D65C
.space 4
dlabel D_8010D660
.space 4
dlabel D_8010D664
.space 4
dlabel D_8010D668
.space 4
dlabel D_8010D66C
.space 4
dlabel D_8010D670
.space 4
dlabel D_8010D674
.space 4
dlabel D_8010D678
.space 4
dlabel D_8010D67C
.space 2
dlabel D_8010D67E
.space 2
dlabel D_8010D680
.space 2
dlabel D_8010D682
.space 2
dlabel D_8010D684
.space 2
dlabel D_8010D686
.space 2
dlabel D_8010D688
.space 2
dlabel D_8010D68A
.space 2
dlabel D_8010D68C
.space 2
dlabel D_8010D68E
.space 1
dlabel D_8010D68F
.space 1
dlabel D_8010D690
.space 1
dlabel D_8010D691
.space 1
dlabel D_8010D692
.space 1
dlabel D_8010D693
.space 1
dlabel D_8010D694
.space 4
dlabel D_8010D698
.space 1
dlabel D_8010D699
.space 1
dlabel D_8010D69A
.space 2
dlabel gPopupMenu
.space 4
dlabel D_8010D6A0
.space 4
dlabel D_8010D6A4
.space 4
dlabel D_8010D6A8
.space 0x8
dlabel D_8010D6B0
.space 0x1500
dlabel gPartnerActionStatus
.space 0x360
dlabel gSpinHistoryPosY
.space 0x18
dlabel gSpinHistoryPosX
.space 0x18
dlabel gSpinHistoryPosZ
.space 0x18
dlabel gUIStatus
.space 0x70
dlabel gPlayerStatus
.space 0x288
dlabel gPlayerSpinState
.space 0x34
dlabel D_8010F284
.space 0xC
dlabel gPlayerData
.space 0x428
dlabel gSpinHistoryPosAngle
.space 0x10

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,78 @@
.include "macro.inc"
.section .data
dlabel _osViModeNtscLan1
.word 0x02000000, 0x0000311E, 0x00000140, 0x03E52239, 0x0000020D, 0x00000C15, 0x0C150C15, 0x006C02EC, 0x00000200, 0x00000000, 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002, 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002
dlabel _osViModeMPalLan1
.word 0x1E000000, 0x0000311E, 0x00000140, 0x04651E39, 0x0000020D, 0x00040C11, 0x0C190C1A, 0x006C02EC, 0x00000200, 0x00000000, 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002, 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002
dlabel D_800958C0
.float 0.017453292, 0.0, 0.0, 0.0
dlabel __osPfsInodeCacheChannel
.word 0xFFFFFFFF
dlabel __osPfsInodeCacheBank
.byte 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
dlabel __osPfsLastChannel
.word 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000
dlabel D_800958F0
.word 0x00000000
dlabel D_800958F4
.word 0x03B9ACA0
dlabel osViClock
.word 0x02E6D354
dlabel __osShutdown
.word 0x00000000
dlabel __OSGlobalIntMask
.word 0x003FFF01, 0x00000000, 0x00000000, 0x00000000
dlabel D_80095910
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
dlabel D_80095938
.word 0x00000000, 0x00000000
dlabel D_80095940
.ascii "0123456789abcdef\0\0\0\0"
dlabel D_80095954
.ascii "0123456789ABCDEF\0\0\0\0\0\0\0\0\0\0\0\0"
dlabel vi
.short 0x0000
dlabel D_80095972
.short 0x0000
dlabel D_80095974
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
dlabel D_800959A0
.short 0x0000
dlabel D_800959A2
.short 0x0000
dlabel D_800959A4
.word 0x00000000
dlabel D_800959A8
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
dlabel __osViCurr
.word vi
dlabel __osViNext
.word D_800959A0, 0x00000000, 0x00000000
dlabel D_800959E0
.word 0x10000000, 0x0000311E, 0x00000140, 0x04541E3A, 0x00000271, 0x00170C69, 0x0C6F0C6D, 0x00800300, 0x00000200, 0x00000000, 0x00000280, 0x00000400, 0x005F0239, 0x0009026B, 0x00000002, 0x00000280, 0x00000400, 0x005F0239, 0x0009026B, 0x00000002

View File

@ -5,9 +5,9 @@ glabel boot_idle
/* 39D0C 8005E90C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 39D10 8005E910 AFBF001C */ sw $ra, 0x1c($sp)
/* 39D14 8005E914 AFB00018 */ sw $s0, 0x18($sp)
/* 39D18 8005E918 3C01800A */ lui $at, %hi(D_8009A630)
/* 39D18 8005E918 3C01800A */ lui $at, %hi(nuIdleFunc)
/* 39D1C 8005E91C 0C017D14 */ jal nuPiInit
/* 39D20 8005E920 AC20A630 */ sw $zero, %lo(D_8009A630)($at)
/* 39D20 8005E920 AC20A630 */ sw $zero, %lo(nuIdleFunc)($at)
/* 39D24 8005E924 24040002 */ addiu $a0, $zero, 2
/* 39D28 8005E928 0C017A6C */ jal nuScCreateScheduler
/* 39D2C 8005E92C 24050001 */ addiu $a1, $zero, 1
@ -33,8 +33,8 @@ glabel boot_idle
/* 39D7C 8005E97C 0C0197D4 */ jal osSetThreadPri
/* 39D80 8005E980 0000282D */ daddu $a1, $zero, $zero
.L8005E984:
/* 39D84 8005E984 3C02800A */ lui $v0, %hi(D_8009A630)
/* 39D88 8005E988 8C42A630 */ lw $v0, %lo(D_8009A630)($v0)
/* 39D84 8005E984 3C02800A */ lui $v0, %hi(nuIdleFunc)
/* 39D88 8005E988 8C42A630 */ lw $v0, %lo(nuIdleFunc)($v0)
.L8005E98C:
/* 39D8C 8005E98C 1040FFFF */ beqz $v0, .L8005E98C
/* 39D90 8005E990 00000000 */ nop

View File

@ -1,52 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel __osContGetInitData
/* 3D11C 80061D1C 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 3D120 80061D20 00805821 */ addu $t3, $a0, $zero
/* 3D124 80061D24 00A04821 */ addu $t1, $a1, $zero
/* 3D128 80061D28 00005021 */ addu $t2, $zero, $zero
/* 3D12C 80061D2C 3C02800A */ lui $v0, %hi(__osMaxControllers)
/* 3D130 80061D30 9042A606 */ lbu $v0, %lo(__osMaxControllers)($v0)
/* 3D134 80061D34 3C08800B */ lui $t0, %hi(__osContPifRam)
/* 3D138 80061D38 25080ED0 */ addiu $t0, $t0, %lo(__osContPifRam)
/* 3D13C 80061D3C 18400021 */ blez $v0, .L80061DC4
/* 3D140 80061D40 00003821 */ addu $a3, $zero, $zero
/* 3D144 80061D44 240C0001 */ addiu $t4, $zero, 1
/* 3D148 80061D48 24A60002 */ addiu $a2, $a1, 2
.L80061D4C:
/* 3D14C 80061D4C 89020000 */ lwl $v0, ($t0)
/* 3D150 80061D50 99020003 */ lwr $v0, 3($t0)
/* 3D154 80061D54 89030004 */ lwl $v1, 4($t0)
/* 3D158 80061D58 99030007 */ lwr $v1, 7($t0)
/* 3D15C 80061D5C ABA20000 */ swl $v0, ($sp)
/* 3D160 80061D60 BBA20003 */ swr $v0, 3($sp)
/* 3D164 80061D64 ABA30004 */ swl $v1, 4($sp)
/* 3D168 80061D68 BBA30007 */ swr $v1, 7($sp)
/* 3D16C 80061D6C 93A20002 */ lbu $v0, 2($sp)
/* 3D170 80061D70 304200C0 */ andi $v0, $v0, 0xc0
/* 3D174 80061D74 00021102 */ srl $v0, $v0, 4
/* 3D178 80061D78 1440000A */ bnez $v0, .L80061DA4
/* 3D17C 80061D7C A0C20001 */ sb $v0, 1($a2)
/* 3D180 80061D80 93A20005 */ lbu $v0, 5($sp)
/* 3D184 80061D84 93A30004 */ lbu $v1, 4($sp)
/* 3D188 80061D88 00021200 */ sll $v0, $v0, 8
/* 3D18C 80061D8C 00621825 */ or $v1, $v1, $v0
/* 3D190 80061D90 A5230000 */ sh $v1, ($t1)
/* 3D194 80061D94 93A30006 */ lbu $v1, 6($sp)
/* 3D198 80061D98 00EC1004 */ sllv $v0, $t4, $a3
/* 3D19C 80061D9C 01425025 */ or $t2, $t2, $v0
/* 3D1A0 80061DA0 A0C30000 */ sb $v1, ($a2)
.L80061DA4:
/* 3D1A4 80061DA4 24E70001 */ addiu $a3, $a3, 1
/* 3D1A8 80061DA8 25080008 */ addiu $t0, $t0, 8
/* 3D1AC 80061DAC 3C02800A */ lui $v0, %hi(__osMaxControllers)
/* 3D1B0 80061DB0 9042A606 */ lbu $v0, %lo(__osMaxControllers)($v0)
/* 3D1B4 80061DB4 24C60004 */ addiu $a2, $a2, 4
/* 3D1B8 80061DB8 00E2102A */ slt $v0, $a3, $v0
/* 3D1BC 80061DBC 1440FFE3 */ bnez $v0, .L80061D4C
/* 3D1C0 80061DC0 25290004 */ addiu $t1, $t1, 4
.L80061DC4:
/* 3D1C4 80061DC4 A16A0000 */ sb $t2, ($t3)
/* 3D1C8 80061DC8 03E00008 */ jr $ra
/* 3D1CC 80061DCC 27BD0010 */ addiu $sp, $sp, 0x10

View File

@ -1,111 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel osContInit
/* 3CF80 80061B80 3C028009 */ lui $v0, %hi(__osContinitialized)
/* 3CF84 80061B84 8C423DB0 */ lw $v0, %lo(__osContinitialized)($v0)
/* 3CF88 80061B88 27BDFF80 */ addiu $sp, $sp, -0x80
/* 3CF8C 80061B8C AFB40070 */ sw $s4, 0x70($sp)
/* 3CF90 80061B90 0080A021 */ addu $s4, $a0, $zero
/* 3CF94 80061B94 AFB50074 */ sw $s5, 0x74($sp)
/* 3CF98 80061B98 00A0A821 */ addu $s5, $a1, $zero
/* 3CF9C 80061B9C AFB60078 */ sw $s6, 0x78($sp)
/* 3CFA0 80061BA0 00C0B021 */ addu $s6, $a2, $zero
/* 3CFA4 80061BA4 AFBF007C */ sw $ra, 0x7c($sp)
/* 3CFA8 80061BA8 AFB3006C */ sw $s3, 0x6c($sp)
/* 3CFAC 80061BAC AFB20068 */ sw $s2, 0x68($sp)
/* 3CFB0 80061BB0 AFB10064 */ sw $s1, 0x64($sp)
/* 3CFB4 80061BB4 10400003 */ beqz $v0, .L80061BC4
/* 3CFB8 80061BB8 AFB00060 */ sw $s0, 0x60($sp)
/* 3CFBC 80061BBC 0801873D */ j .L80061CF4
/* 3CFC0 80061BC0 00001021 */ addu $v0, $zero, $zero
.L80061BC4:
/* 3CFC4 80061BC4 24020001 */ addiu $v0, $zero, 1
/* 3CFC8 80061BC8 3C018009 */ lui $at, %hi(__osContinitialized)
/* 3CFCC 80061BCC 0C0198A8 */ jal osGetTime
/* 3CFD0 80061BD0 AC223DB0 */ sw $v0, %lo(__osContinitialized)($at)
/* 3CFD4 80061BD4 00409021 */ addu $s2, $v0, $zero
/* 3CFD8 80061BD8 00609821 */ addu $s3, $v1, $zero
/* 3CFDC 80061BDC 56400022 */ bnel $s2, $zero, .L80061C68
/* 3CFE0 80061BE0 24020004 */ addiu $v0, $zero, 4
/* 3CFE4 80061BE4 16400007 */ bnez $s2, .L80061C04
/* 3CFE8 80061BE8 27B10040 */ addiu $s1, $sp, 0x40
/* 3CFEC 80061BEC 3C020165 */ lui $v0, 0x165
/* 3CFF0 80061BF0 3442A0BB */ ori $v0, $v0, 0xa0bb
/* 3CFF4 80061BF4 0053102B */ sltu $v0, $v0, $s3
/* 3CFF8 80061BF8 1440001B */ bnez $v0, .L80061C68
/* 3CFFC 80061BFC 24020004 */ addiu $v0, $zero, 4
/* 3D000 80061C00 27B10040 */ addiu $s1, $sp, 0x40
.L80061C04:
/* 3D004 80061C04 02202021 */ addu $a0, $s1, $zero
/* 3D008 80061C08 27B00058 */ addiu $s0, $sp, 0x58
/* 3D00C 80061C0C 02002821 */ addu $a1, $s0, $zero
/* 3D010 80061C10 0C019560 */ jal osCreateMesgQueue
/* 3D014 80061C14 24060001 */ addiu $a2, $zero, 1
/* 3D018 80061C18 00004021 */ addu $t0, $zero, $zero
/* 3D01C 80061C1C 00004821 */ addu $t1, $zero, $zero
/* 3D020 80061C20 27A40020 */ addiu $a0, $sp, 0x20
/* 3D024 80061C24 24060000 */ addiu $a2, $zero, 0
/* 3D028 80061C28 3C070165 */ lui $a3, 0x165
/* 3D02C 80061C2C 34E7A0BC */ ori $a3, $a3, 0xa0bc
/* 3D030 80061C30 00F3102B */ sltu $v0, $a3, $s3
/* 3D034 80061C34 00F33823 */ subu $a3, $a3, $s3
/* 3D038 80061C38 00D23023 */ subu $a2, $a2, $s2
/* 3D03C 80061C3C 00C23023 */ subu $a2, $a2, $v0
/* 3D040 80061C40 AFA80010 */ sw $t0, 0x10($sp)
/* 3D044 80061C44 AFA90014 */ sw $t1, 0x14($sp)
/* 3D048 80061C48 AFB10018 */ sw $s1, 0x18($sp)
/* 3D04C 80061C4C 0C0198D4 */ jal osSetTimer
/* 3D050 80061C50 AFB0001C */ sw $s0, 0x1c($sp)
/* 3D054 80061C54 02202021 */ addu $a0, $s1, $zero
/* 3D058 80061C58 02002821 */ addu $a1, $s0, $zero
/* 3D05C 80061C5C 0C0195BC */ jal osRecvMesg
/* 3D060 80061C60 24060001 */ addiu $a2, $zero, 1
/* 3D064 80061C64 24020004 */ addiu $v0, $zero, 4
.L80061C68:
/* 3D068 80061C68 3C01800A */ lui $at, %hi(__osMaxControllers)
/* 3D06C 80061C6C A022A606 */ sb $v0, %lo(__osMaxControllers)($at)
/* 3D070 80061C70 0C018774 */ jal __osPackRequestData
/* 3D074 80061C74 00002021 */ addu $a0, $zero, $zero
/* 3D078 80061C78 24040001 */ addiu $a0, $zero, 1
/* 3D07C 80061C7C 3C11800B */ lui $s1, %hi(__osContPifRam)
/* 3D080 80061C80 26310ED0 */ addiu $s1, $s1, %lo(__osContPifRam)
/* 3D084 80061C84 0C019730 */ jal __osSiRawStartDma
/* 3D088 80061C88 02202821 */ addu $a1, $s1, $zero
/* 3D08C 80061C8C 02802021 */ addu $a0, $s4, $zero
/* 3D090 80061C90 27B00058 */ addiu $s0, $sp, 0x58
/* 3D094 80061C94 02002821 */ addu $a1, $s0, $zero
/* 3D098 80061C98 0C0195BC */ jal osRecvMesg
/* 3D09C 80061C9C 24060001 */ addiu $a2, $zero, 1
/* 3D0A0 80061CA0 00002021 */ addu $a0, $zero, $zero
/* 3D0A4 80061CA4 0C019730 */ jal __osSiRawStartDma
/* 3D0A8 80061CA8 02202821 */ addu $a1, $s1, $zero
/* 3D0AC 80061CAC 02802021 */ addu $a0, $s4, $zero
/* 3D0B0 80061CB0 02002821 */ addu $a1, $s0, $zero
/* 3D0B4 80061CB4 24060001 */ addiu $a2, $zero, 1
/* 3D0B8 80061CB8 0C0195BC */ jal osRecvMesg
/* 3D0BC 80061CBC 00408021 */ addu $s0, $v0, $zero
/* 3D0C0 80061CC0 02A02021 */ addu $a0, $s5, $zero
/* 3D0C4 80061CC4 0C018747 */ jal __osContGetInitData
/* 3D0C8 80061CC8 02C02821 */ addu $a1, $s6, $zero
/* 3D0CC 80061CCC 3C01800A */ lui $at, %hi(__osContLastCmd)
/* 3D0D0 80061CD0 0C01975C */ jal __osSiCreateAccessQueue
/* 3D0D4 80061CD4 A020A61C */ sb $zero, %lo(__osContLastCmd)($at)
/* 3D0D8 80061CD8 3C04800E */ lui $a0, %hi(D_800DAAC0)
/* 3D0DC 80061CDC 2484AAC0 */ addiu $a0, $a0, %lo(D_800DAAC0)
/* 3D0E0 80061CE0 3C05800A */ lui $a1, %hi(D_8009A620)
/* 3D0E4 80061CE4 24A5A620 */ addiu $a1, $a1, %lo(D_8009A620)
/* 3D0E8 80061CE8 0C019560 */ jal osCreateMesgQueue
/* 3D0EC 80061CEC 24060001 */ addiu $a2, $zero, 1
/* 3D0F0 80061CF0 02001021 */ addu $v0, $s0, $zero
.L80061CF4:
/* 3D0F4 80061CF4 8FBF007C */ lw $ra, 0x7c($sp)
/* 3D0F8 80061CF8 8FB60078 */ lw $s6, 0x78($sp)
/* 3D0FC 80061CFC 8FB50074 */ lw $s5, 0x74($sp)
/* 3D100 80061D00 8FB40070 */ lw $s4, 0x70($sp)
/* 3D104 80061D04 8FB3006C */ lw $s3, 0x6c($sp)
/* 3D108 80061D08 8FB20068 */ lw $s2, 0x68($sp)
/* 3D10C 80061D0C 8FB10064 */ lw $s1, 0x64($sp)
/* 3D110 80061D10 8FB00060 */ lw $s0, 0x60($sp)
/* 3D114 80061D14 03E00008 */ jr $ra
/* 3D118 80061D18 27BD0080 */ addiu $sp, $sp, 0x80

View File

@ -1,55 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel __osPackRequestData
/* 3D1D0 80061DD0 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 3D1D4 80061DD4 00802821 */ addu $a1, $a0, $zero
/* 3D1D8 80061DD8 2406000E */ addiu $a2, $zero, 0xe
/* 3D1DC 80061DDC 3C02800B */ lui $v0, %hi(D_800B0F08)
/* 3D1E0 80061DE0 24420F08 */ addiu $v0, $v0, %lo(D_800B0F08)
.L80061DE4:
/* 3D1E4 80061DE4 AC400000 */ sw $zero, ($v0)
/* 3D1E8 80061DE8 24C6FFFF */ addiu $a2, $a2, -1
/* 3D1EC 80061DEC 04C1FFFD */ bgez $a2, .L80061DE4
/* 3D1F0 80061DF0 2442FFFC */ addiu $v0, $v0, -4
/* 3D1F4 80061DF4 3C03800B */ lui $v1, %hi(D_800B0F0C)
/* 3D1F8 80061DF8 24630F0C */ addiu $v1, $v1, %lo(D_800B0F0C)
/* 3D1FC 80061DFC 2467FFC4 */ addiu $a3, $v1, -0x3c
/* 3D200 80061E00 3C04800A */ lui $a0, %hi(__osMaxControllers)
/* 3D204 80061E04 9084A606 */ lbu $a0, %lo(__osMaxControllers)($a0)
/* 3D208 80061E08 00003021 */ addu $a2, $zero, $zero
/* 3D20C 80061E0C 24020001 */ addiu $v0, $zero, 1
/* 3D210 80061E10 AC620000 */ sw $v0, ($v1)
/* 3D214 80061E14 240300FF */ addiu $v1, $zero, 0xff
/* 3D218 80061E18 24020001 */ addiu $v0, $zero, 1
/* 3D21C 80061E1C A3A20001 */ sb $v0, 1($sp)
/* 3D220 80061E20 24020003 */ addiu $v0, $zero, 3
/* 3D224 80061E24 A3A30000 */ sb $v1, ($sp)
/* 3D228 80061E28 A3A20002 */ sb $v0, 2($sp)
/* 3D22C 80061E2C A3A50003 */ sb $a1, 3($sp)
/* 3D230 80061E30 A3A30004 */ sb $v1, 4($sp)
/* 3D234 80061E34 A3A30005 */ sb $v1, 5($sp)
/* 3D238 80061E38 A3A30006 */ sb $v1, 6($sp)
/* 3D23C 80061E3C 1880000F */ blez $a0, .L80061E7C
/* 3D240 80061E40 A3A30007 */ sb $v1, 7($sp)
.L80061E44:
/* 3D244 80061E44 8BA20000 */ lwl $v0, ($sp)
/* 3D248 80061E48 9BA20003 */ lwr $v0, 3($sp)
/* 3D24C 80061E4C 8BA30004 */ lwl $v1, 4($sp)
/* 3D250 80061E50 9BA30007 */ lwr $v1, 7($sp)
/* 3D254 80061E54 A8E20000 */ swl $v0, ($a3)
/* 3D258 80061E58 B8E20003 */ swr $v0, 3($a3)
/* 3D25C 80061E5C A8E30004 */ swl $v1, 4($a3)
/* 3D260 80061E60 B8E30007 */ swr $v1, 7($a3)
/* 3D264 80061E64 3C02800A */ lui $v0, %hi(__osMaxControllers)
/* 3D268 80061E68 9042A606 */ lbu $v0, %lo(__osMaxControllers)($v0)
/* 3D26C 80061E6C 24C60001 */ addiu $a2, $a2, 1
/* 3D270 80061E70 00C2102A */ slt $v0, $a2, $v0
/* 3D274 80061E74 1440FFF3 */ bnez $v0, .L80061E44
/* 3D278 80061E78 24E70008 */ addiu $a3, $a3, 8
.L80061E7C:
/* 3D27C 80061E7C 240200FE */ addiu $v0, $zero, 0xfe
/* 3D280 80061E80 A0E20000 */ sb $v0, ($a3)
/* 3D284 80061E84 03E00008 */ jr $ra
/* 3D288 80061E88 27BD0010 */ addiu $sp, $sp, 0x10
/* 3D28C 80061E8C 00000000 */ nop

View File

@ -1,40 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel ldiv
/* 48A20 8006D620 00A6001A */ div $zero, $a1, $a2
/* 48A24 8006D624 14C00002 */ bnez $a2, .L8006D630
/* 48A28 8006D628 00000000 */ nop
/* 48A2C 8006D62C 0007000D */ break 7
.L8006D630:
/* 48A30 8006D630 2401FFFF */ addiu $at, $zero, -1
/* 48A34 8006D634 14C10004 */ bne $a2, $at, .L8006D648
/* 48A38 8006D638 3C018000 */ lui $at, 0x8000
/* 48A3C 8006D63C 14A10002 */ bne $a1, $at, .L8006D648
/* 48A40 8006D640 00000000 */ nop
/* 48A44 8006D644 0006000D */ break 6
.L8006D648:
/* 48A48 8006D648 00001812 */ mflo $v1
/* 48A4C 8006D64C 00000000 */ nop
/* 48A50 8006D650 00000000 */ nop
/* 48A54 8006D654 00C30018 */ mult $a2, $v1
/* 48A58 8006D658 00001012 */ mflo $v0
/* 48A5C 8006D65C 27BDFFF8 */ addiu $sp, $sp, -8
/* 48A60 8006D660 00803821 */ addu $a3, $a0, $zero
/* 48A64 8006D664 AFA30000 */ sw $v1, ($sp)
/* 48A68 8006D668 00A22823 */ subu $a1, $a1, $v0
/* 48A6C 8006D66C 04610006 */ bgez $v1, .L8006D688
/* 48A70 8006D670 AFA50004 */ sw $a1, 4($sp)
/* 48A74 8006D674 18A00004 */ blez $a1, .L8006D688
/* 48A78 8006D678 24620001 */ addiu $v0, $v1, 1
/* 48A7C 8006D67C AFA20000 */ sw $v0, ($sp)
/* 48A80 8006D680 00A61023 */ subu $v0, $a1, $a2
/* 48A84 8006D684 AFA20004 */ sw $v0, 4($sp)
.L8006D688:
/* 48A88 8006D688 8FA20000 */ lw $v0, ($sp)
/* 48A8C 8006D68C 8FA30004 */ lw $v1, 4($sp)
/* 48A90 8006D690 ACE20000 */ sw $v0, ($a3)
/* 48A94 8006D694 ACE30004 */ sw $v1, 4($a3)
/* 48A98 8006D698 00E01021 */ addu $v0, $a3, $zero
/* 48A9C 8006D69C 03E00008 */ jr $ra
/* 48AA0 8006D6A0 27BD0008 */ addiu $sp, $sp, 8

View File

@ -1,85 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel lldiv
/* 48AA4 8006D6A4 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 48AA8 8006D6A8 AFB3002C */ sw $s3, 0x2c($sp)
/* 48AAC 8006D6AC AFB20028 */ sw $s2, 0x28($sp)
/* 48AB0 8006D6B0 8FB20048 */ lw $s2, 0x48($sp)
/* 48AB4 8006D6B4 8FB3004C */ lw $s3, 0x4c($sp)
/* 48AB8 8006D6B8 AFB40030 */ sw $s4, 0x30($sp)
/* 48ABC 8006D6BC 0080A021 */ addu $s4, $a0, $zero
/* 48AC0 8006D6C0 AFB10024 */ sw $s1, 0x24($sp)
/* 48AC4 8006D6C4 AFB00020 */ sw $s0, 0x20($sp)
/* 48AC8 8006D6C8 00C08021 */ addu $s0, $a2, $zero
/* 48ACC 8006D6CC 00E08821 */ addu $s1, $a3, $zero
/* 48AD0 8006D6D0 02002021 */ addu $a0, $s0, $zero
/* 48AD4 8006D6D4 02202821 */ addu $a1, $s1, $zero
/* 48AD8 8006D6D8 AFBF0034 */ sw $ra, 0x34($sp)
/* 48ADC 8006D6DC 02403021 */ addu $a2, $s2, $zero
/* 48AE0 8006D6E0 0C01B600 */ jal __divdi3
/* 48AE4 8006D6E4 02603821 */ addu $a3, $s3, $zero
/* 48AE8 8006D6E8 00403021 */ addu $a2, $v0, $zero
/* 48AEC 8006D6EC 00603821 */ addu $a3, $v1, $zero
/* 48AF0 8006D6F0 02670019 */ multu $s3, $a3
/* 48AF4 8006D6F4 00001010 */ mfhi $v0
/* 48AF8 8006D6F8 00001812 */ mflo $v1
/* 48AFC 8006D6FC 00000000 */ nop
/* 48B00 8006D700 00000000 */ nop
/* 48B04 8006D704 02660018 */ mult $s3, $a2
/* 48B08 8006D708 00002012 */ mflo $a0
/* 48B0C 8006D70C 00000000 */ nop
/* 48B10 8006D710 00000000 */ nop
/* 48B14 8006D714 00F20018 */ mult $a3, $s2
/* 48B18 8006D718 00002812 */ mflo $a1
/* 48B1C 8006D71C AFA60010 */ sw $a2, 0x10($sp)
/* 48B20 8006D720 AFA70014 */ sw $a3, 0x14($sp)
/* 48B24 8006D724 00441021 */ addu $v0, $v0, $a0
/* 48B28 8006D728 8FA40010 */ lw $a0, 0x10($sp)
/* 48B2C 8006D72C 00451021 */ addu $v0, $v0, $a1
/* 48B30 8006D730 0223282B */ sltu $a1, $s1, $v1
/* 48B34 8006D734 02234823 */ subu $t1, $s1, $v1
/* 48B38 8006D738 02024023 */ subu $t0, $s0, $v0
/* 48B3C 8006D73C 01054023 */ subu $t0, $t0, $a1
/* 48B40 8006D740 AFA80018 */ sw $t0, 0x18($sp)
/* 48B44 8006D744 04810013 */ bgez $a0, .L8006D794
/* 48B48 8006D748 AFA9001C */ sw $t1, 0x1c($sp)
/* 48B4C 8006D74C 8FA20018 */ lw $v0, 0x18($sp)
/* 48B50 8006D750 5C400006 */ bgtzl $v0, .L8006D76C
/* 48B54 8006D754 24E30001 */ addiu $v1, $a3, 1
/* 48B58 8006D758 1440000E */ bnez $v0, .L8006D794
/* 48B5C 8006D75C 00000000 */ nop
/* 48B60 8006D760 8FA2001C */ lw $v0, 0x1c($sp)
/* 48B64 8006D764 1040000B */ beqz $v0, .L8006D794
/* 48B68 8006D768 24E30001 */ addiu $v1, $a3, 1
.L8006D76C:
/* 48B6C 8006D76C 2C640001 */ sltiu $a0, $v1, 1
/* 48B70 8006D770 00C41021 */ addu $v0, $a2, $a0
/* 48B74 8006D774 AFA20010 */ sw $v0, 0x10($sp)
/* 48B78 8006D778 AFA30014 */ sw $v1, 0x14($sp)
/* 48B7C 8006D77C 0133202B */ sltu $a0, $t1, $s3
/* 48B80 8006D780 01331823 */ subu $v1, $t1, $s3
/* 48B84 8006D784 01121023 */ subu $v0, $t0, $s2
/* 48B88 8006D788 00441023 */ subu $v0, $v0, $a0
/* 48B8C 8006D78C AFA20018 */ sw $v0, 0x18($sp)
/* 48B90 8006D790 AFA3001C */ sw $v1, 0x1c($sp)
.L8006D794:
/* 48B94 8006D794 8FA20010 */ lw $v0, 0x10($sp)
/* 48B98 8006D798 8FA30014 */ lw $v1, 0x14($sp)
/* 48B9C 8006D79C 8FA40018 */ lw $a0, 0x18($sp)
/* 48BA0 8006D7A0 8FA5001C */ lw $a1, 0x1c($sp)
/* 48BA4 8006D7A4 AE820000 */ sw $v0, ($s4)
/* 48BA8 8006D7A8 AE830004 */ sw $v1, 4($s4)
/* 48BAC 8006D7AC AE840008 */ sw $a0, 8($s4)
/* 48BB0 8006D7B0 AE85000C */ sw $a1, 0xc($s4)
/* 48BB4 8006D7B4 02801021 */ addu $v0, $s4, $zero
/* 48BB8 8006D7B8 8FBF0034 */ lw $ra, 0x34($sp)
/* 48BBC 8006D7BC 8FB40030 */ lw $s4, 0x30($sp)
/* 48BC0 8006D7C0 8FB3002C */ lw $s3, 0x2c($sp)
/* 48BC4 8006D7C4 8FB20028 */ lw $s2, 0x28($sp)
/* 48BC8 8006D7C8 8FB10024 */ lw $s1, 0x24($sp)
/* 48BCC 8006D7CC 8FB00020 */ lw $s0, 0x20($sp)
/* 48BD0 8006D7D0 03E00008 */ jr $ra
/* 48BD4 8006D7D4 27BD0038 */ addiu $sp, $sp, 0x38
/* 48BD8 8006D7D8 00000000 */ nop
/* 48BDC 8006D7DC 00000000 */ nop

View File

@ -1,90 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel __osMotorAccess
/* 43200 80067E00 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 43204 80067E04 AFB10014 */ sw $s1, 0x14($sp)
/* 43208 80067E08 00808821 */ addu $s1, $a0, $zero
/* 4320C 80067E0C AFB3001C */ sw $s3, 0x1c($sp)
/* 43210 80067E10 00A09821 */ addu $s3, $a1, $zero
/* 43214 80067E14 AFBF0020 */ sw $ra, 0x20($sp)
/* 43218 80067E18 AFB20018 */ sw $s2, 0x18($sp)
/* 4321C 80067E1C AFB00010 */ sw $s0, 0x10($sp)
/* 43220 80067E20 8E220008 */ lw $v0, 8($s1)
/* 43224 80067E24 8E230000 */ lw $v1, ($s1)
/* 43228 80067E28 3C04800B */ lui $a0, %hi(D_800B0B30)
/* 4322C 80067E2C 24840B30 */ addiu $a0, $a0, %lo(D_800B0B30)
/* 43230 80067E30 00021180 */ sll $v0, $v0, 6
/* 43234 80067E34 30630008 */ andi $v1, $v1, 8
/* 43238 80067E38 14600003 */ bnez $v1, .L80067E48
/* 4323C 80067E3C 00449021 */ addu $s2, $v0, $a0
/* 43240 80067E40 08019FCA */ j .L80067F28
/* 43244 80067E44 24020005 */ addiu $v0, $zero, 5
.L80067E48:
/* 43248 80067E48 0C019771 */ jal __osSiGetAccess
/* 4324C 80067E4C 00000000 */ nop
/* 43250 80067E50 8E220008 */ lw $v0, 8($s1)
/* 43254 80067E54 24030001 */ addiu $v1, $zero, 1
/* 43258 80067E58 00021180 */ sll $v0, $v0, 6
/* 4325C 80067E5C 3C01800B */ lui $at, %hi(D_800B0B6C)
/* 43260 80067E60 00220821 */ addu $at, $at, $v0
/* 43264 80067E64 AC230B6C */ sw $v1, %lo(D_800B0B6C)($at)
/* 43268 80067E68 8E220008 */ lw $v0, 8($s1)
/* 4326C 80067E6C 2403001F */ addiu $v1, $zero, 0x1f
/* 43270 80067E70 02429021 */ addu $s2, $s2, $v0
/* 43274 80067E74 2642001F */ addiu $v0, $s2, 0x1f
.L80067E78:
/* 43278 80067E78 A0530006 */ sb $s3, 6($v0)
/* 4327C 80067E7C 2463FFFF */ addiu $v1, $v1, -1
/* 43280 80067E80 0461FFFD */ bgez $v1, .L80067E78
/* 43284 80067E84 2442FFFF */ addiu $v0, $v0, -1
/* 43288 80067E88 8E250008 */ lw $a1, 8($s1)
/* 4328C 80067E8C 24040001 */ addiu $a0, $zero, 1
/* 43290 80067E90 240200FE */ addiu $v0, $zero, 0xfe
/* 43294 80067E94 3C10800B */ lui $s0, %hi(D_800B0B30)
/* 43298 80067E98 26100B30 */ addiu $s0, $s0, %lo(D_800B0B30)
/* 4329C 80067E9C 3C01800A */ lui $at, %hi(__osContLastCmd)
/* 432A0 80067EA0 A022A61C */ sb $v0, %lo(__osContLastCmd)($at)
/* 432A4 80067EA4 00052980 */ sll $a1, $a1, 6
/* 432A8 80067EA8 0C019730 */ jal __osSiRawStartDma
/* 432AC 80067EAC 00B02821 */ addu $a1, $a1, $s0
/* 432B0 80067EB0 8E240004 */ lw $a0, 4($s1)
/* 432B4 80067EB4 00002821 */ addu $a1, $zero, $zero
/* 432B8 80067EB8 0C0195BC */ jal osRecvMesg
/* 432BC 80067EBC 24060001 */ addiu $a2, $zero, 1
/* 432C0 80067EC0 8E250008 */ lw $a1, 8($s1)
/* 432C4 80067EC4 00002021 */ addu $a0, $zero, $zero
/* 432C8 80067EC8 00052980 */ sll $a1, $a1, 6
/* 432CC 80067ECC 0C019730 */ jal __osSiRawStartDma
/* 432D0 80067ED0 00B02821 */ addu $a1, $a1, $s0
/* 432D4 80067ED4 8E240004 */ lw $a0, 4($s1)
/* 432D8 80067ED8 00002821 */ addu $a1, $zero, $zero
/* 432DC 80067EDC 0C0195BC */ jal osRecvMesg
/* 432E0 80067EE0 24060001 */ addiu $a2, $zero, 1
/* 432E4 80067EE4 92420002 */ lbu $v0, 2($s2)
/* 432E8 80067EE8 305000C0 */ andi $s0, $v0, 0xc0
/* 432EC 80067EEC 1600000B */ bnez $s0, .L80067F1C
/* 432F0 80067EF0 00000000 */ nop
/* 432F4 80067EF4 16600006 */ bnez $s3, .L80067F10
/* 432F8 80067EF8 240200EB */ addiu $v0, $zero, 0xeb
/* 432FC 80067EFC 92420026 */ lbu $v0, 0x26($s2)
/* 43300 80067F00 10400006 */ beqz $v0, .L80067F1C
/* 43304 80067F04 00000000 */ nop
/* 43308 80067F08 08019FC7 */ j .L80067F1C
/* 4330C 80067F0C 24100004 */ addiu $s0, $zero, 4
.L80067F10:
/* 43310 80067F10 92430026 */ lbu $v1, 0x26($s2)
/* 43314 80067F14 54620001 */ bnel $v1, $v0, .L80067F1C
/* 43318 80067F18 24100004 */ addiu $s0, $zero, 4
.L80067F1C:
/* 4331C 80067F1C 0C01978C */ jal __osSiRelAccess
/* 43320 80067F20 00000000 */ nop
/* 43324 80067F24 02001021 */ addu $v0, $s0, $zero
.L80067F28:
/* 43328 80067F28 8FBF0020 */ lw $ra, 0x20($sp)
/* 4332C 80067F2C 8FB3001C */ lw $s3, 0x1c($sp)
/* 43330 80067F30 8FB20018 */ lw $s2, 0x18($sp)
/* 43334 80067F34 8FB10014 */ lw $s1, 0x14($sp)
/* 43338 80067F38 8FB00010 */ lw $s0, 0x10($sp)
/* 4333C 80067F3C 03E00008 */ jr $ra
/* 43340 80067F40 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,165 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel osMotorInit
/* 43344 80067F44 27BDFF88 */ addiu $sp, $sp, -0x78
/* 43348 80067F48 AFB00060 */ sw $s0, 0x60($sp)
/* 4334C 80067F4C 00808021 */ addu $s0, $a0, $zero
/* 43350 80067F50 AFB20068 */ sw $s2, 0x68($sp)
/* 43354 80067F54 00A09021 */ addu $s2, $a1, $zero
/* 43358 80067F58 AFB10064 */ sw $s1, 0x64($sp)
/* 4335C 80067F5C 00C08821 */ addu $s1, $a2, $zero
/* 43360 80067F60 02402021 */ addu $a0, $s2, $zero
/* 43364 80067F64 240500FE */ addiu $a1, $zero, 0xfe
/* 43368 80067F68 240200FF */ addiu $v0, $zero, 0xff
/* 4336C 80067F6C AFBF0070 */ sw $ra, 0x70($sp)
/* 43370 80067F70 AFB3006C */ sw $s3, 0x6c($sp)
/* 43374 80067F74 AE500004 */ sw $s0, 4($s2)
/* 43378 80067F78 AE510008 */ sw $s1, 8($s2)
/* 4337C 80067F7C A2420065 */ sb $v0, 0x65($s2)
/* 43380 80067F80 0C01A5B4 */ jal __osPfsSelectBank
/* 43384 80067F84 AE400000 */ sw $zero, ($s2)
/* 43388 80067F88 24130002 */ addiu $s3, $zero, 2
/* 4338C 80067F8C 14530003 */ bne $v0, $s3, .L80067F9C
/* 43390 80067F90 02402021 */ addu $a0, $s2, $zero
/* 43394 80067F94 0C01A5B4 */ jal __osPfsSelectBank
/* 43398 80067F98 24050080 */ addiu $a1, $zero, 0x80
.L80067F9C:
/* 4339C 80067F9C 14400074 */ bnez $v0, .L80068170
/* 433A0 80067FA0 02002021 */ addu $a0, $s0, $zero
/* 433A4 80067FA4 02202821 */ addu $a1, $s1, $zero
/* 433A8 80067FA8 24060400 */ addiu $a2, $zero, 0x400
/* 433AC 80067FAC 0C01A874 */ jal __osContRamRead
/* 433B0 80067FB0 27A70010 */ addiu $a3, $sp, 0x10
/* 433B4 80067FB4 50530001 */ beql $v0, $s3, .L80067FBC
/* 433B8 80067FB8 24020004 */ addiu $v0, $zero, 4
.L80067FBC:
/* 433BC 80067FBC 1440006C */ bnez $v0, .L80068170
/* 433C0 80067FC0 00000000 */ nop
/* 433C4 80067FC4 93A3002F */ lbu $v1, 0x2f($sp)
/* 433C8 80067FC8 240200FE */ addiu $v0, $zero, 0xfe
/* 433CC 80067FCC 10620013 */ beq $v1, $v0, .L8006801C
/* 433D0 80067FD0 02402021 */ addu $a0, $s2, $zero
/* 433D4 80067FD4 0C01A5B4 */ jal __osPfsSelectBank
/* 433D8 80067FD8 24050080 */ addiu $a1, $zero, 0x80
/* 433DC 80067FDC 50530001 */ beql $v0, $s3, .L80067FE4
/* 433E0 80067FE0 24020004 */ addiu $v0, $zero, 4
.L80067FE4:
/* 433E4 80067FE4 14400062 */ bnez $v0, .L80068170
/* 433E8 80067FE8 02002021 */ addu $a0, $s0, $zero
/* 433EC 80067FEC 02202821 */ addu $a1, $s1, $zero
/* 433F0 80067FF0 24060400 */ addiu $a2, $zero, 0x400
/* 433F4 80067FF4 0C01A874 */ jal __osContRamRead
/* 433F8 80067FF8 27A70010 */ addiu $a3, $sp, 0x10
/* 433FC 80067FFC 50530001 */ beql $v0, $s3, .L80068004
/* 43400 80068000 24020004 */ addiu $v0, $zero, 4
.L80068004:
/* 43404 80068004 1440005A */ bnez $v0, .L80068170
/* 43408 80068008 00000000 */ nop
/* 4340C 8006800C 93A3002F */ lbu $v1, 0x2f($sp)
/* 43410 80068010 24020080 */ addiu $v0, $zero, 0x80
/* 43414 80068014 10620003 */ beq $v1, $v0, .L80068024
/* 43418 80068018 00000000 */ nop
.L8006801C:
/* 4341C 8006801C 0801A05C */ j .L80068170
/* 43420 80068020 2402000B */ addiu $v0, $zero, 0xb
.L80068024:
/* 43424 80068024 8E420000 */ lw $v0, ($s2)
/* 43428 80068028 30420008 */ andi $v0, $v0, 8
/* 4342C 8006802C 1440004E */ bnez $v0, .L80068168
/* 43430 80068030 24020008 */ addiu $v0, $zero, 8
/* 43434 80068034 00111980 */ sll $v1, $s1, 6
/* 43438 80068038 3C02800B */ lui $v0, %hi(D_800B0B30)
/* 4343C 8006803C 24420B30 */ addiu $v0, $v0, %lo(D_800B0B30)
/* 43440 80068040 00628021 */ addu $s0, $v1, $v0
/* 43444 80068044 24040600 */ addiu $a0, $zero, 0x600
/* 43448 80068048 240200FF */ addiu $v0, $zero, 0xff
/* 4344C 8006804C A3A20030 */ sb $v0, 0x30($sp)
/* 43450 80068050 24020023 */ addiu $v0, $zero, 0x23
/* 43454 80068054 A3A20031 */ sb $v0, 0x31($sp)
/* 43458 80068058 24020001 */ addiu $v0, $zero, 1
/* 4345C 8006805C A3A20032 */ sb $v0, 0x32($sp)
/* 43460 80068060 24020003 */ addiu $v0, $zero, 3
/* 43464 80068064 A3A20033 */ sb $v0, 0x33($sp)
/* 43468 80068068 240200C0 */ addiu $v0, $zero, 0xc0
/* 4346C 8006806C 0C01B218 */ jal __osContAddressCrc
/* 43470 80068070 A3A20034 */ sb $v0, 0x34($sp)
/* 43474 80068074 12200008 */ beqz $s1, .L80068098
/* 43478 80068078 A3A20035 */ sb $v0, 0x35($sp)
/* 4347C 8006807C 1A200006 */ blez $s1, .L80068098
/* 43480 80068080 00001821 */ addu $v1, $zero, $zero
.L80068084:
/* 43484 80068084 A2000000 */ sb $zero, ($s0)
/* 43488 80068088 24630001 */ addiu $v1, $v1, 1
/* 4348C 8006808C 0071102A */ slt $v0, $v1, $s1
/* 43490 80068090 1440FFFC */ bnez $v0, .L80068084
/* 43494 80068094 26100001 */ addiu $s0, $s0, 1
.L80068098:
/* 43498 80068098 27A60030 */ addiu $a2, $sp, 0x30
/* 4349C 8006809C 00D01025 */ or $v0, $a2, $s0
/* 434A0 800680A0 30420003 */ andi $v0, $v0, 3
/* 434A4 800680A4 10400017 */ beqz $v0, .L80068104
/* 434A8 800680A8 02003821 */ addu $a3, $s0, $zero
/* 434AC 800680AC 27A80050 */ addiu $t0, $sp, 0x50
.L800680B0:
/* 434B0 800680B0 88C20000 */ lwl $v0, ($a2)
/* 434B4 800680B4 98C20003 */ lwr $v0, 3($a2)
/* 434B8 800680B8 88C30004 */ lwl $v1, 4($a2)
/* 434BC 800680BC 98C30007 */ lwr $v1, 7($a2)
/* 434C0 800680C0 88C40008 */ lwl $a0, 8($a2)
/* 434C4 800680C4 98C4000B */ lwr $a0, 0xb($a2)
/* 434C8 800680C8 88C5000C */ lwl $a1, 0xc($a2)
/* 434CC 800680CC 98C5000F */ lwr $a1, 0xf($a2)
/* 434D0 800680D0 A8E20000 */ swl $v0, ($a3)
/* 434D4 800680D4 B8E20003 */ swr $v0, 3($a3)
/* 434D8 800680D8 A8E30004 */ swl $v1, 4($a3)
/* 434DC 800680DC B8E30007 */ swr $v1, 7($a3)
/* 434E0 800680E0 A8E40008 */ swl $a0, 8($a3)
/* 434E4 800680E4 B8E4000B */ swr $a0, 0xb($a3)
/* 434E8 800680E8 A8E5000C */ swl $a1, 0xc($a3)
/* 434EC 800680EC B8E5000F */ swr $a1, 0xf($a3)
/* 434F0 800680F0 24C60010 */ addiu $a2, $a2, 0x10
/* 434F4 800680F4 14C8FFEE */ bne $a2, $t0, .L800680B0
/* 434F8 800680F8 24E70010 */ addiu $a3, $a3, 0x10
/* 434FC 800680FC 0801A04D */ j .L80068134
/* 43500 80068100 00000000 */ nop
.L80068104:
/* 43504 80068104 27A80050 */ addiu $t0, $sp, 0x50
.L80068108:
/* 43508 80068108 8CC20000 */ lw $v0, ($a2)
/* 4350C 8006810C 8CC30004 */ lw $v1, 4($a2)
/* 43510 80068110 8CC40008 */ lw $a0, 8($a2)
/* 43514 80068114 8CC5000C */ lw $a1, 0xc($a2)
/* 43518 80068118 ACE20000 */ sw $v0, ($a3)
/* 4351C 8006811C ACE30004 */ sw $v1, 4($a3)
/* 43520 80068120 ACE40008 */ sw $a0, 8($a3)
/* 43524 80068124 ACE5000C */ sw $a1, 0xc($a3)
/* 43528 80068128 24C60010 */ addiu $a2, $a2, 0x10
/* 4352C 8006812C 14C8FFF6 */ bne $a2, $t0, .L80068108
/* 43530 80068130 24E70010 */ addiu $a3, $a3, 0x10
.L80068134:
/* 43534 80068134 88C20000 */ lwl $v0, ($a2)
/* 43538 80068138 98C20003 */ lwr $v0, 3($a2)
/* 4353C 8006813C 80C30004 */ lb $v1, 4($a2)
/* 43540 80068140 80C40005 */ lb $a0, 5($a2)
/* 43544 80068144 80C50006 */ lb $a1, 6($a2)
/* 43548 80068148 A8E20000 */ swl $v0, ($a3)
/* 4354C 8006814C B8E20003 */ swr $v0, 3($a3)
/* 43550 80068150 A0E30004 */ sb $v1, 4($a3)
/* 43554 80068154 A0E40005 */ sb $a0, 5($a3)
/* 43558 80068158 A0E50006 */ sb $a1, 6($a3)
/* 4355C 8006815C 240200FE */ addiu $v0, $zero, 0xfe
/* 43560 80068160 A2020027 */ sb $v0, 0x27($s0)
/* 43564 80068164 24020008 */ addiu $v0, $zero, 8
.L80068168:
/* 43568 80068168 AE420000 */ sw $v0, ($s2)
/* 4356C 8006816C 00001021 */ addu $v0, $zero, $zero
.L80068170:
/* 43570 80068170 8FBF0070 */ lw $ra, 0x70($sp)
/* 43574 80068174 8FB3006C */ lw $s3, 0x6c($sp)
/* 43578 80068178 8FB20068 */ lw $s2, 0x68($sp)
/* 4357C 8006817C 8FB10064 */ lw $s1, 0x64($sp)
/* 43580 80068180 8FB00060 */ lw $s0, 0x60($sp)
/* 43584 80068184 03E00008 */ jr $ra
/* 43588 80068188 27BD0078 */ addiu $sp, $sp, 0x78
/* 4358C 8006818C 00000000 */ nop

View File

@ -1,103 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel osCartRomInit
/* 3C310 80060F10 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 3C314 80060F14 AFBF0018 */ sw $ra, 0x18($sp)
/* 3C318 80060F18 AFB10014 */ sw $s1, 0x14($sp)
/* 3C31C 80060F1C 0C018529 */ jal __osPiGetAccess
/* 3C320 80060F20 AFB00010 */ sw $s0, 0x10($sp)
/* 3C324 80060F24 3C028009 */ lui $v0, %hi(D_80093D80)
/* 3C328 80060F28 8C423D80 */ lw $v0, %lo(D_80093D80)($v0)
/* 3C32C 80060F2C 1040004D */ beqz $v0, .L80061064
/* 3C330 80060F30 00000000 */ nop
/* 3C334 80060F34 3C02800B */ lui $v0, %hi(D_800B430C)
/* 3C338 80060F38 2442430C */ addiu $v0, $v0, %lo(D_800B430C)
/* 3C33C 80060F3C 24440010 */ addiu $a0, $v0, 0x10
/* 3C340 80060F40 3C018009 */ lui $at, %hi(D_80093D80)
/* 3C344 80060F44 AC203D80 */ sw $zero, %lo(D_80093D80)($at)
/* 3C348 80060F48 A0400000 */ sb $zero, ($v0)
/* 3C34C 80060F4C 3C02B000 */ lui $v0, 0xb000
/* 3C350 80060F50 3C01800B */ lui $at, %hi(D_800B4314)
/* 3C354 80060F54 AC224314 */ sw $v0, %lo(D_800B4314)($at)
/* 3C358 80060F58 3C01800B */ lui $at, %hi(D_800B4311)
/* 3C35C 80060F5C A0204311 */ sb $zero, %lo(D_800B4311)($at)
/* 3C360 80060F60 3C01800B */ lui $at, %hi(D_800B4318)
/* 3C364 80060F64 AC204318 */ sw $zero, %lo(D_800B4318)($at)
/* 3C368 80060F68 0C01925C */ jal bzero
/* 3C36C 80060F6C 24050060 */ addiu $a1, $zero, 0x60
/* 3C370 80060F70 3C02A460 */ lui $v0, 0xa460
/* 3C374 80060F74 34420010 */ ori $v0, $v0, 0x10
/* 3C378 80060F78 8C420000 */ lw $v0, ($v0)
/* 3C37C 80060F7C 30420003 */ andi $v0, $v0, 3
/* 3C380 80060F80 10400006 */ beqz $v0, .L80060F9C
/* 3C384 80060F84 3C03A460 */ lui $v1, 0xa460
/* 3C388 80060F88 34630010 */ ori $v1, $v1, 0x10
.L80060F8C:
/* 3C38C 80060F8C 8C620000 */ lw $v0, ($v1)
/* 3C390 80060F90 30420003 */ andi $v0, $v0, 3
/* 3C394 80060F94 1440FFFD */ bnez $v0, .L80060F8C
/* 3C398 80060F98 00000000 */ nop
.L80060F9C:
/* 3C39C 80060F9C 3C08A460 */ lui $t0, 0xa460
/* 3C3A0 80060FA0 35080014 */ ori $t0, $t0, 0x14
/* 3C3A4 80060FA4 3C07A460 */ lui $a3, 0xa460
/* 3C3A8 80060FA8 34E7001C */ ori $a3, $a3, 0x1c
/* 3C3AC 80060FAC 3C06A460 */ lui $a2, 0xa460
/* 3C3B0 80060FB0 34C60020 */ ori $a2, $a2, 0x20
/* 3C3B4 80060FB4 3C05A460 */ lui $a1, 0xa460
/* 3C3B8 80060FB8 34A50018 */ ori $a1, $a1, 0x18
/* 3C3BC 80060FBC 8D090000 */ lw $t1, ($t0)
/* 3C3C0 80060FC0 8CEA0000 */ lw $t2, ($a3)
/* 3C3C4 80060FC4 8CCB0000 */ lw $t3, ($a2)
/* 3C3C8 80060FC8 8CAC0000 */ lw $t4, ($a1)
/* 3C3CC 80060FCC 3C11800B */ lui $s1, %hi(D_800B4314)
/* 3C3D0 80060FD0 26314314 */ addiu $s1, $s1, %lo(D_800B4314)
/* 3C3D4 80060FD4 8E230000 */ lw $v1, ($s1)
/* 3C3D8 80060FD8 240400FF */ addiu $a0, $zero, 0xff
/* 3C3DC 80060FDC 24020003 */ addiu $v0, $zero, 3
/* 3C3E0 80060FE0 AD040000 */ sw $a0, ($t0)
/* 3C3E4 80060FE4 ACE00000 */ sw $zero, ($a3)
/* 3C3E8 80060FE8 ACC20000 */ sw $v0, ($a2)
/* 3C3EC 80060FEC 3C02A000 */ lui $v0, 0xa000
/* 3C3F0 80060FF0 ACA40000 */ sw $a0, ($a1)
/* 3C3F4 80060FF4 00621825 */ or $v1, $v1, $v0
/* 3C3F8 80060FF8 8C630000 */ lw $v1, ($v1)
/* 3C3FC 80060FFC AD090000 */ sw $t1, ($t0)
/* 3C400 80061000 ACEA0000 */ sw $t2, ($a3)
/* 3C404 80061004 ACCB0000 */ sw $t3, ($a2)
/* 3C408 80061008 ACAC0000 */ sw $t4, ($a1)
/* 3C40C 8006100C 00031402 */ srl $v0, $v1, 0x10
/* 3C410 80061010 3042000F */ andi $v0, $v0, 0xf
/* 3C414 80061014 3C01800B */ lui $at, %hi(D_800B430E)
/* 3C418 80061018 A022430E */ sb $v0, %lo(D_800B430E)($at)
/* 3C41C 8006101C 00031502 */ srl $v0, $v1, 0x14
/* 3C420 80061020 3042000F */ andi $v0, $v0, 0xf
/* 3C424 80061024 3C01800B */ lui $at, %hi(D_800B430D)
/* 3C428 80061028 A023430D */ sb $v1, %lo(D_800B430D)($at)
/* 3C42C 8006102C 00031A02 */ srl $v1, $v1, 8
/* 3C430 80061030 3C01800B */ lui $at, %hi(D_800B430F)
/* 3C434 80061034 A022430F */ sb $v0, %lo(D_800B430F)($at)
/* 3C438 80061038 3C01800B */ lui $at, %hi(D_800B4310)
/* 3C43C 8006103C A0234310 */ sb $v1, %lo(D_800B4310)($at)
/* 3C440 80061040 0C01ACD8 */ jal __osDisableInt
/* 3C444 80061044 2630FFF4 */ addiu $s0, $s1, -0xc
/* 3C448 80061048 3C038009 */ lui $v1, %hi(__osPiTable)
/* 3C44C 8006104C 8C633D6C */ lw $v1, %lo(__osPiTable)($v1)
/* 3C450 80061050 00402021 */ addu $a0, $v0, $zero
/* 3C454 80061054 3C018009 */ lui $at, %hi(__osPiTable)
/* 3C458 80061058 AC303D6C */ sw $s0, %lo(__osPiTable)($at)
/* 3C45C 8006105C 0C01ACF4 */ jal __osRestoreInt
/* 3C460 80061060 AE23FFF4 */ sw $v1, -0xc($s1)
.L80061064:
/* 3C464 80061064 0C018544 */ jal __osPiRelAccess
/* 3C468 80061068 00000000 */ nop
/* 3C46C 8006106C 3C02800B */ lui $v0, %hi(D_800B4308)
/* 3C470 80061070 24424308 */ addiu $v0, $v0, %lo(D_800B4308)
/* 3C474 80061074 8FBF0018 */ lw $ra, 0x18($sp)
/* 3C478 80061078 8FB10014 */ lw $s1, 0x14($sp)
/* 3C47C 8006107C 8FB00010 */ lw $s0, 0x10($sp)
/* 3C480 80061080 03E00008 */ jr $ra
/* 3C484 80061084 27BD0020 */ addiu $sp, $sp, 0x20
/* 3C488 80061088 00000000 */ nop
/* 3C48C 8006108C 00000000 */ nop

View File

@ -1,107 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel osCreatePiManager
/* 3BDE0 800609E0 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 3BDE4 800609E4 AFB00018 */ sw $s0, 0x18($sp)
/* 3BDE8 800609E8 00808021 */ addu $s0, $a0, $zero
/* 3BDEC 800609EC AFB5002C */ sw $s5, 0x2c($sp)
/* 3BDF0 800609F0 00A0A821 */ addu $s5, $a1, $zero
/* 3BDF4 800609F4 AFB40028 */ sw $s4, 0x28($sp)
/* 3BDF8 800609F8 3C148009 */ lui $s4, %hi(__osPiDevMgr)
/* 3BDFC 800609FC 26943D50 */ addiu $s4, $s4, %lo(__osPiDevMgr)
/* 3BE00 80060A00 AFBF0030 */ sw $ra, 0x30($sp)
/* 3BE04 80060A04 AFB30024 */ sw $s3, 0x24($sp)
/* 3BE08 80060A08 AFB20020 */ sw $s2, 0x20($sp)
/* 3BE0C 80060A0C AFB1001C */ sw $s1, 0x1c($sp)
/* 3BE10 80060A10 8E820000 */ lw $v0, ($s4)
/* 3BE14 80060A14 00C02821 */ addu $a1, $a2, $zero
/* 3BE18 80060A18 1440004C */ bnez $v0, .L80060B4C
/* 3BE1C 80060A1C 00E03021 */ addu $a2, $a3, $zero
/* 3BE20 80060A20 0C019560 */ jal osCreateMesgQueue
/* 3BE24 80060A24 02A02021 */ addu $a0, $s5, $zero
/* 3BE28 80060A28 3C13800B */ lui $s3, %hi(__osPiMesgQueue)
/* 3BE2C 80060A2C 2673F890 */ addiu $s3, $s3, %lo(__osPiMesgQueue)
/* 3BE30 80060A30 02602021 */ addu $a0, $s3, $zero
/* 3BE34 80060A34 3C05800B */ lui $a1, %hi(piMgrMesgBuff)
/* 3BE38 80060A38 24A5F8A8 */ addiu $a1, $a1, %lo(piMgrMesgBuff)
/* 3BE3C 80060A3C 0C019560 */ jal osCreateMesgQueue
/* 3BE40 80060A40 24060001 */ addiu $a2, $zero, 1
/* 3BE44 80060A44 3C028009 */ lui $v0, %hi(__osPiAccessQueueEnabled)
/* 3BE48 80060A48 8C423D90 */ lw $v0, %lo(__osPiAccessQueueEnabled)($v0)
/* 3BE4C 80060A4C 54400004 */ bnel $v0, $zero, .L80060A60
/* 3BE50 80060A50 24040008 */ addiu $a0, $zero, 8
/* 3BE54 80060A54 0C018514 */ jal __osPiCreateAccessQueue
/* 3BE58 80060A58 00000000 */ nop
/* 3BE5C 80060A5C 24040008 */ addiu $a0, $zero, 8
.L80060A60:
/* 3BE60 80060A60 02602821 */ addu $a1, $s3, $zero
/* 3BE64 80060A64 3C062222 */ lui $a2, 0x2222
/* 3BE68 80060A68 0C019654 */ jal osSetEventMesg
/* 3BE6C 80060A6C 34C62222 */ ori $a2, $a2, 0x2222
/* 3BE70 80060A70 2412FFFF */ addiu $s2, $zero, -1
/* 3BE74 80060A74 0C0197CC */ jal osGetThreadPri
/* 3BE78 80060A78 00002021 */ addu $a0, $zero, $zero
/* 3BE7C 80060A7C 00401821 */ addu $v1, $v0, $zero
/* 3BE80 80060A80 0070102A */ slt $v0, $v1, $s0
/* 3BE84 80060A84 10400005 */ beqz $v0, .L80060A9C
/* 3BE88 80060A88 00000000 */ nop
/* 3BE8C 80060A8C 00609021 */ addu $s2, $v1, $zero
/* 3BE90 80060A90 00002021 */ addu $a0, $zero, $zero
/* 3BE94 80060A94 0C0197D4 */ jal osSetThreadPri
/* 3BE98 80060A98 02002821 */ addu $a1, $s0, $zero
.L80060A9C:
/* 3BE9C 80060A9C 0C01ACD8 */ jal __osDisableInt
/* 3BEA0 80060AA0 00000000 */ nop
/* 3BEA4 80060AA4 3C11800B */ lui $s1, %hi(piMgrThread)
/* 3BEA8 80060AA8 2631E6E0 */ addiu $s1, $s1, %lo(piMgrThread)
/* 3BEAC 80060AAC 02202021 */ addu $a0, $s1, $zero
/* 3BEB0 80060AB0 00002821 */ addu $a1, $zero, $zero
/* 3BEB4 80060AB4 3C068006 */ lui $a2, %hi(__osDevMgrMain)
/* 3BEB8 80060AB8 24C61090 */ addiu $a2, $a2, %lo(__osDevMgrMain)
/* 3BEBC 80060ABC 24030001 */ addiu $v1, $zero, 1
/* 3BEC0 80060AC0 AE830000 */ sw $v1, ($s4)
/* 3BEC4 80060AC4 3C03800B */ lui $v1, %hi(__osPiAccessQueue)
/* 3BEC8 80060AC8 24634380 */ addiu $v1, $v1, %lo(__osPiAccessQueue)
/* 3BECC 80060ACC 3C018009 */ lui $at, %hi(__osPiDevMgr+0x10)
/* 3BED0 80060AD0 AC233D60 */ sw $v1, %lo(__osPiDevMgr+0x10)($at)
/* 3BED4 80060AD4 3C038007 */ lui $v1, %hi(__osPiRawStartDma)
/* 3BED8 80060AD8 2463B480 */ addiu $v1, $v1, %lo(__osPiRawStartDma)
/* 3BEDC 80060ADC 3C018009 */ lui $at, %hi(__osPiDevMgr+0x14)
/* 3BEE0 80060AE0 AC233D64 */ sw $v1, %lo(__osPiDevMgr+0x14)($at)
/* 3BEE4 80060AE4 3C038006 */ lui $v1, %hi(osEPiRawStartDma)
/* 3BEE8 80060AE8 24630B70 */ addiu $v1, $v1, %lo(osEPiRawStartDma)
/* 3BEEC 80060AEC 3C018009 */ lui $at, %hi(__osPiDevMgr+0x18)
/* 3BEF0 80060AF0 AC233D68 */ sw $v1, %lo(__osPiDevMgr+0x18)($at)
/* 3BEF4 80060AF4 3C03800B */ lui $v1, %hi(__osPiMesgQueue)
/* 3BEF8 80060AF8 2463F890 */ addiu $v1, $v1, %lo(__osPiMesgQueue)
/* 3BEFC 80060AFC AFB00014 */ sw $s0, 0x14($sp)
/* 3BF00 80060B00 00408021 */ addu $s0, $v0, $zero
/* 3BF04 80060B04 02803821 */ addu $a3, $s4, $zero
/* 3BF08 80060B08 3C018009 */ lui $at, %hi(__osPiDevMgr+0x4)
/* 3BF0C 80060B0C AC313D54 */ sw $s1, %lo(__osPiDevMgr+0x4)($at)
/* 3BF10 80060B10 3C018009 */ lui $at, %hi(__osPiDevMgr+0x8)
/* 3BF14 80060B14 AC353D58 */ sw $s5, %lo(__osPiDevMgr+0x8)($at)
/* 3BF18 80060B18 3C018009 */ lui $at, %hi(__osPiDevMgr+0xC)
/* 3BF1C 80060B1C AC333D5C */ sw $s3, %lo(__osPiDevMgr+0xC)($at)
/* 3BF20 80060B20 0C019798 */ jal osCreateThread
/* 3BF24 80060B24 AFA30010 */ sw $v1, 0x10($sp)
/* 3BF28 80060B28 0C019808 */ jal osStartThread
/* 3BF2C 80060B2C 02202021 */ addu $a0, $s1, $zero
/* 3BF30 80060B30 0C01ACF4 */ jal __osRestoreInt
/* 3BF34 80060B34 02002021 */ addu $a0, $s0, $zero
/* 3BF38 80060B38 2402FFFF */ addiu $v0, $zero, -1
/* 3BF3C 80060B3C 12420003 */ beq $s2, $v0, .L80060B4C
/* 3BF40 80060B40 00002021 */ addu $a0, $zero, $zero
/* 3BF44 80060B44 0C0197D4 */ jal osSetThreadPri
/* 3BF48 80060B48 02402821 */ addu $a1, $s2, $zero
.L80060B4C:
/* 3BF4C 80060B4C 8FBF0030 */ lw $ra, 0x30($sp)
/* 3BF50 80060B50 8FB5002C */ lw $s5, 0x2c($sp)
/* 3BF54 80060B54 8FB40028 */ lw $s4, 0x28($sp)
/* 3BF58 80060B58 8FB30024 */ lw $s3, 0x24($sp)
/* 3BF5C 80060B5C 8FB20020 */ lw $s2, 0x20($sp)
/* 3BF60 80060B60 8FB1001C */ lw $s1, 0x1c($sp)
/* 3BF64 80060B64 8FB00018 */ lw $s0, 0x18($sp)
/* 3BF68 80060B68 03E00008 */ jr $ra
/* 3BF6C 80060B6C 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,144 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel osEPiRawStartDma
/* 3BF70 80060B70 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 3BF74 80060B74 AFB00010 */ sw $s0, 0x10($sp)
/* 3BF78 80060B78 00808021 */ addu $s0, $a0, $zero
/* 3BF7C 80060B7C AFB10014 */ sw $s1, 0x14($sp)
/* 3BF80 80060B80 00A08821 */ addu $s1, $a1, $zero
/* 3BF84 80060B84 AFB20018 */ sw $s2, 0x18($sp)
/* 3BF88 80060B88 00C09021 */ addu $s2, $a2, $zero
/* 3BF8C 80060B8C 3C02A460 */ lui $v0, 0xa460
/* 3BF90 80060B90 34420010 */ ori $v0, $v0, 0x10
/* 3BF94 80060B94 AFBF0020 */ sw $ra, 0x20($sp)
/* 3BF98 80060B98 AFB3001C */ sw $s3, 0x1c($sp)
/* 3BF9C 80060B9C 8C420000 */ lw $v0, ($v0)
/* 3BFA0 80060BA0 8FB30038 */ lw $s3, 0x38($sp)
/* 3BFA4 80060BA4 30420003 */ andi $v0, $v0, 3
/* 3BFA8 80060BA8 10400007 */ beqz $v0, .L80060BC8
/* 3BFAC 80060BAC 00E02021 */ addu $a0, $a3, $zero
/* 3BFB0 80060BB0 3C03A460 */ lui $v1, 0xa460
/* 3BFB4 80060BB4 34630010 */ ori $v1, $v1, 0x10
.L80060BB8:
/* 3BFB8 80060BB8 8C620000 */ lw $v0, ($v1)
/* 3BFBC 80060BBC 30420003 */ andi $v0, $v0, 3
/* 3BFC0 80060BC0 1440FFFD */ bnez $v0, .L80060BB8
/* 3BFC4 80060BC4 00000000 */ nop
.L80060BC8:
/* 3BFC8 80060BC8 92060009 */ lbu $a2, 9($s0)
/* 3BFCC 80060BCC 00061080 */ sll $v0, $a2, 2
/* 3BFD0 80060BD0 3C058009 */ lui $a1, %hi(__osCurrentHandle)
/* 3BFD4 80060BD4 00A22821 */ addu $a1, $a1, $v0
/* 3BFD8 80060BD8 8CA53D70 */ lw $a1, %lo(__osCurrentHandle)($a1)
/* 3BFDC 80060BDC 92020004 */ lbu $v0, 4($s0)
/* 3BFE0 80060BE0 90A30004 */ lbu $v1, 4($a1)
/* 3BFE4 80060BE4 1062003D */ beq $v1, $v0, .L80060CDC
/* 3BFE8 80060BE8 00000000 */ nop
/* 3BFEC 80060BEC 14C00019 */ bnez $a2, .L80060C54
/* 3BFF0 80060BF0 00A01821 */ addu $v1, $a1, $zero
/* 3BFF4 80060BF4 90620005 */ lbu $v0, 5($v1)
/* 3BFF8 80060BF8 92050005 */ lbu $a1, 5($s0)
/* 3BFFC 80060BFC 10450003 */ beq $v0, $a1, .L80060C0C
/* 3C000 80060C00 3C02A460 */ lui $v0, 0xa460
/* 3C004 80060C04 34420014 */ ori $v0, $v0, 0x14
/* 3C008 80060C08 AC450000 */ sw $a1, ($v0)
.L80060C0C:
/* 3C00C 80060C0C 90620006 */ lbu $v0, 6($v1)
/* 3C010 80060C10 92050006 */ lbu $a1, 6($s0)
/* 3C014 80060C14 10450003 */ beq $v0, $a1, .L80060C24
/* 3C018 80060C18 3C02A460 */ lui $v0, 0xa460
/* 3C01C 80060C1C 3442001C */ ori $v0, $v0, 0x1c
/* 3C020 80060C20 AC450000 */ sw $a1, ($v0)
.L80060C24:
/* 3C024 80060C24 90620007 */ lbu $v0, 7($v1)
/* 3C028 80060C28 92050007 */ lbu $a1, 7($s0)
/* 3C02C 80060C2C 10450003 */ beq $v0, $a1, .L80060C3C
/* 3C030 80060C30 3C02A460 */ lui $v0, 0xa460
/* 3C034 80060C34 34420020 */ ori $v0, $v0, 0x20
/* 3C038 80060C38 AC450000 */ sw $a1, ($v0)
.L80060C3C:
/* 3C03C 80060C3C 90620008 */ lbu $v0, 8($v1)
/* 3C040 80060C40 92050008 */ lbu $a1, 8($s0)
/* 3C044 80060C44 1045001B */ beq $v0, $a1, .L80060CB4
/* 3C048 80060C48 3C02A460 */ lui $v0, 0xa460
/* 3C04C 80060C4C 0801832C */ j .L80060CB0
/* 3C050 80060C50 34420018 */ ori $v0, $v0, 0x18
.L80060C54:
/* 3C054 80060C54 90620005 */ lbu $v0, 5($v1)
/* 3C058 80060C58 92050005 */ lbu $a1, 5($s0)
/* 3C05C 80060C5C 10450003 */ beq $v0, $a1, .L80060C6C
/* 3C060 80060C60 3C02A460 */ lui $v0, 0xa460
/* 3C064 80060C64 34420024 */ ori $v0, $v0, 0x24
/* 3C068 80060C68 AC450000 */ sw $a1, ($v0)
.L80060C6C:
/* 3C06C 80060C6C 90620006 */ lbu $v0, 6($v1)
/* 3C070 80060C70 92050006 */ lbu $a1, 6($s0)
/* 3C074 80060C74 10450003 */ beq $v0, $a1, .L80060C84
/* 3C078 80060C78 3C02A460 */ lui $v0, 0xa460
/* 3C07C 80060C7C 3442002C */ ori $v0, $v0, 0x2c
/* 3C080 80060C80 AC450000 */ sw $a1, ($v0)
.L80060C84:
/* 3C084 80060C84 90620007 */ lbu $v0, 7($v1)
/* 3C088 80060C88 92050007 */ lbu $a1, 7($s0)
/* 3C08C 80060C8C 10450003 */ beq $v0, $a1, .L80060C9C
/* 3C090 80060C90 3C02A460 */ lui $v0, 0xa460
/* 3C094 80060C94 34420030 */ ori $v0, $v0, 0x30
/* 3C098 80060C98 AC450000 */ sw $a1, ($v0)
.L80060C9C:
/* 3C09C 80060C9C 90620008 */ lbu $v0, 8($v1)
/* 3C0A0 80060CA0 92050008 */ lbu $a1, 8($s0)
/* 3C0A4 80060CA4 10450003 */ beq $v0, $a1, .L80060CB4
/* 3C0A8 80060CA8 3C02A460 */ lui $v0, 0xa460
/* 3C0AC 80060CAC 34420028 */ ori $v0, $v0, 0x28
.L80060CB0:
/* 3C0B0 80060CB0 AC450000 */ sw $a1, ($v0)
.L80060CB4:
/* 3C0B4 80060CB4 92020004 */ lbu $v0, 4($s0)
/* 3C0B8 80060CB8 A0620004 */ sb $v0, 4($v1)
/* 3C0BC 80060CBC 92020005 */ lbu $v0, 5($s0)
/* 3C0C0 80060CC0 A0620005 */ sb $v0, 5($v1)
/* 3C0C4 80060CC4 92020006 */ lbu $v0, 6($s0)
/* 3C0C8 80060CC8 A0620006 */ sb $v0, 6($v1)
/* 3C0CC 80060CCC 92020007 */ lbu $v0, 7($s0)
/* 3C0D0 80060CD0 A0620007 */ sb $v0, 7($v1)
/* 3C0D4 80060CD4 92020008 */ lbu $v0, 8($s0)
/* 3C0D8 80060CD8 A0620008 */ sb $v0, 8($v1)
.L80060CDC:
/* 3C0DC 80060CDC 0C0187A4 */ jal osVirtualToPhysical
/* 3C0E0 80060CE0 00000000 */ nop
/* 3C0E4 80060CE4 3C04A460 */ lui $a0, 0xa460
/* 3C0E8 80060CE8 34840004 */ ori $a0, $a0, 4
/* 3C0EC 80060CEC 3C03A460 */ lui $v1, 0xa460
/* 3C0F0 80060CF0 AC620000 */ sw $v0, ($v1)
/* 3C0F4 80060CF4 8E02000C */ lw $v0, 0xc($s0)
/* 3C0F8 80060CF8 3C031FFF */ lui $v1, 0x1fff
/* 3C0FC 80060CFC 3463FFFF */ ori $v1, $v1, 0xffff
/* 3C100 80060D00 00521025 */ or $v0, $v0, $s2
/* 3C104 80060D04 00431024 */ and $v0, $v0, $v1
/* 3C108 80060D08 AC820000 */ sw $v0, ($a0)
/* 3C10C 80060D0C 12200005 */ beqz $s1, .L80060D24
/* 3C110 80060D10 24020001 */ addiu $v0, $zero, 1
/* 3C114 80060D14 12220006 */ beq $s1, $v0, .L80060D30
/* 3C118 80060D18 3C03A460 */ lui $v1, 0xa460
/* 3C11C 80060D1C 08018350 */ j .L80060D40
/* 3C120 80060D20 2402FFFF */ addiu $v0, $zero, -1
.L80060D24:
/* 3C124 80060D24 3C03A460 */ lui $v1, 0xa460
/* 3C128 80060D28 0801834D */ j .L80060D34
/* 3C12C 80060D2C 3463000C */ ori $v1, $v1, 0xc
.L80060D30:
/* 3C130 80060D30 34630008 */ ori $v1, $v1, 8
.L80060D34:
/* 3C134 80060D34 2662FFFF */ addiu $v0, $s3, -1
/* 3C138 80060D38 AC620000 */ sw $v0, ($v1)
/* 3C13C 80060D3C 00001021 */ addu $v0, $zero, $zero
.L80060D40:
/* 3C140 80060D40 8FBF0020 */ lw $ra, 0x20($sp)
/* 3C144 80060D44 8FB3001C */ lw $s3, 0x1c($sp)
/* 3C148 80060D48 8FB20018 */ lw $s2, 0x18($sp)
/* 3C14C 80060D4C 8FB10014 */ lw $s1, 0x14($sp)
/* 3C150 80060D50 8FB00010 */ lw $s0, 0x10($sp)
/* 3C154 80060D54 03E00008 */ jr $ra
/* 3C158 80060D58 27BD0028 */ addiu $sp, $sp, 0x28
/* 3C15C 80060D5C 00000000 */ nop

View File

@ -1,12 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel __osViGetCurrentContext
/* 47FA0 8006CBA0 3C028009 */ lui $v0, %hi(__osViCurr)
/* 47FA4 8006CBA4 03E00008 */ jr $ra
/* 47FA8 8006CBA8 8C4259D0 */ lw $v0, %lo(__osViCurr)($v0)
/* 47FAC 8006CBAC 00000000 */ nop
/* 47FB0 8006CBB0 00000000 */ nop
/* 47FB4 8006CBB4 00000000 */ nop
/* 47FB8 8006CBB8 00000000 */ nop
/* 47FBC 8006CBBC 00000000 */ nop

View File

@ -1,110 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel osCreateViManager
/* 41E70 80066A70 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 41E74 80066A74 AFB40028 */ sw $s4, 0x28($sp)
/* 41E78 80066A78 3C148009 */ lui $s4, %hi(D_80094680)
/* 41E7C 80066A7C 26944680 */ addiu $s4, $s4, %lo(D_80094680)
/* 41E80 80066A80 AFBF002C */ sw $ra, 0x2c($sp)
/* 41E84 80066A84 AFB30024 */ sw $s3, 0x24($sp)
/* 41E88 80066A88 AFB20020 */ sw $s2, 0x20($sp)
/* 41E8C 80066A8C AFB1001C */ sw $s1, 0x1c($sp)
/* 41E90 80066A90 AFB00018 */ sw $s0, 0x18($sp)
/* 41E94 80066A94 8E820000 */ lw $v0, ($s4)
/* 41E98 80066A98 14400055 */ bnez $v0, .L80066BF0
/* 41E9C 80066A9C 00808821 */ addu $s1, $a0, $zero
/* 41EA0 80066AA0 0C019920 */ jal __osTimerServicesInit
/* 41EA4 80066AA4 2412FFFF */ addiu $s2, $zero, -1
/* 41EA8 80066AA8 3C13800B */ lui $s3, %hi(D_800B0AD0)
/* 41EAC 80066AAC 26730AD0 */ addiu $s3, $s3, %lo(D_800B0AD0)
/* 41EB0 80066AB0 02602021 */ addu $a0, $s3, $zero
/* 41EB4 80066AB4 3C05800B */ lui $a1, %hi(D_800B0AE8)
/* 41EB8 80066AB8 24A50AE8 */ addiu $a1, $a1, %lo(D_800B0AE8)
/* 41EBC 80066ABC 3C018009 */ lui $at, %hi(__additional_scanline)
/* 41EC0 80066AC0 AC20469C */ sw $zero, %lo(__additional_scanline)($at)
/* 41EC4 80066AC4 0C019560 */ jal osCreateMesgQueue
/* 41EC8 80066AC8 24060005 */ addiu $a2, $zero, 5
/* 41ECC 80066ACC 24040007 */ addiu $a0, $zero, 7
/* 41ED0 80066AD0 3C06800B */ lui $a2, %hi(D_800B0B00)
/* 41ED4 80066AD4 24C60B00 */ addiu $a2, $a2, %lo(D_800B0B00)
/* 41ED8 80066AD8 2402000D */ addiu $v0, $zero, 0xd
/* 41EDC 80066ADC 3C10800B */ lui $s0, %hi(D_800B0B18)
/* 41EE0 80066AE0 26100B18 */ addiu $s0, $s0, %lo(D_800B0B18)
/* 41EE4 80066AE4 A4C20000 */ sh $v0, ($a2)
/* 41EE8 80066AE8 2402000E */ addiu $v0, $zero, 0xe
/* 41EEC 80066AEC 3C01800B */ lui $at, %hi(D_800B0B02)
/* 41EF0 80066AF0 A0200B02 */ sb $zero, %lo(D_800B0B02)($at)
/* 41EF4 80066AF4 3C01800B */ lui $at, %hi(D_800B0B04)
/* 41EF8 80066AF8 AC200B04 */ sw $zero, %lo(D_800B0B04)($at)
/* 41EFC 80066AFC A6020000 */ sh $v0, ($s0)
/* 41F00 80066B00 3C01800B */ lui $at, %hi(D_800B0B1A)
/* 41F04 80066B04 A0200B1A */ sb $zero, %lo(D_800B0B1A)($at)
/* 41F08 80066B08 3C01800B */ lui $at, %hi(D_800B0B1C)
/* 41F0C 80066B0C AC200B1C */ sw $zero, %lo(D_800B0B1C)($at)
/* 41F10 80066B10 0C019654 */ jal osSetEventMesg
/* 41F14 80066B14 02602821 */ addu $a1, $s3, $zero
/* 41F18 80066B18 24040003 */ addiu $a0, $zero, 3
/* 41F1C 80066B1C 02602821 */ addu $a1, $s3, $zero
/* 41F20 80066B20 0C019654 */ jal osSetEventMesg
/* 41F24 80066B24 02003021 */ addu $a2, $s0, $zero
/* 41F28 80066B28 0C0197CC */ jal osGetThreadPri
/* 41F2C 80066B2C 00002021 */ addu $a0, $zero, $zero
/* 41F30 80066B30 00401821 */ addu $v1, $v0, $zero
/* 41F34 80066B34 0071102A */ slt $v0, $v1, $s1
/* 41F38 80066B38 10400005 */ beqz $v0, .L80066B50
/* 41F3C 80066B3C 00000000 */ nop
/* 41F40 80066B40 00609021 */ addu $s2, $v1, $zero
/* 41F44 80066B44 00002021 */ addu $a0, $zero, $zero
/* 41F48 80066B48 0C0197D4 */ jal osSetThreadPri
/* 41F4C 80066B4C 02202821 */ addu $a1, $s1, $zero
.L80066B50:
/* 41F50 80066B50 0C01ACD8 */ jal __osDisableInt
/* 41F54 80066B54 00000000 */ nop
/* 41F58 80066B58 3C10800B */ lui $s0, %hi(D_800AF918)
/* 41F5C 80066B5C 2610F918 */ addiu $s0, $s0, %lo(D_800AF918)
/* 41F60 80066B60 02002021 */ addu $a0, $s0, $zero
/* 41F64 80066B64 00002821 */ addu $a1, $zero, $zero
/* 41F68 80066B68 3C068006 */ lui $a2, %hi(viMgrMain)
/* 41F6C 80066B6C 24C66C10 */ addiu $a2, $a2, %lo(viMgrMain)
/* 41F70 80066B70 24030001 */ addiu $v1, $zero, 1
/* 41F74 80066B74 AE830000 */ sw $v1, ($s4)
/* 41F78 80066B78 3C03800B */ lui $v1, %hi(D_800B0AD0)
/* 41F7C 80066B7C 24630AD0 */ addiu $v1, $v1, %lo(D_800B0AD0)
/* 41F80 80066B80 AFB10014 */ sw $s1, 0x14($sp)
/* 41F84 80066B84 00408821 */ addu $s1, $v0, $zero
/* 41F88 80066B88 02803821 */ addu $a3, $s4, $zero
/* 41F8C 80066B8C 3C018009 */ lui $at, %hi(D_80094684)
/* 41F90 80066B90 AC304684 */ sw $s0, %lo(D_80094684)($at)
/* 41F94 80066B94 3C018009 */ lui $at, %hi(D_80094688)
/* 41F98 80066B98 AC334688 */ sw $s3, %lo(D_80094688)($at)
/* 41F9C 80066B9C 3C018009 */ lui $at, %hi(D_8009468C)
/* 41FA0 80066BA0 AC33468C */ sw $s3, %lo(D_8009468C)($at)
/* 41FA4 80066BA4 3C018009 */ lui $at, %hi(D_80094690)
/* 41FA8 80066BA8 AC204690 */ sw $zero, %lo(D_80094690)($at)
/* 41FAC 80066BAC 3C018009 */ lui $at, %hi(D_80094694)
/* 41FB0 80066BB0 AC204694 */ sw $zero, %lo(D_80094694)($at)
/* 41FB4 80066BB4 3C018009 */ lui $at, %hi(D_80094698)
/* 41FB8 80066BB8 AC204698 */ sw $zero, %lo(D_80094698)($at)
/* 41FBC 80066BBC 0C019798 */ jal osCreateThread
/* 41FC0 80066BC0 AFA30010 */ sw $v1, 0x10($sp)
/* 41FC4 80066BC4 0C01B2A4 */ jal __osViInit
/* 41FC8 80066BC8 00000000 */ nop
/* 41FCC 80066BCC 0C019808 */ jal osStartThread
/* 41FD0 80066BD0 02002021 */ addu $a0, $s0, $zero
/* 41FD4 80066BD4 0C01ACF4 */ jal __osRestoreInt
/* 41FD8 80066BD8 02202021 */ addu $a0, $s1, $zero
/* 41FDC 80066BDC 2402FFFF */ addiu $v0, $zero, -1
/* 41FE0 80066BE0 12420003 */ beq $s2, $v0, .L80066BF0
/* 41FE4 80066BE4 00002021 */ addu $a0, $zero, $zero
/* 41FE8 80066BE8 0C0197D4 */ jal osSetThreadPri
/* 41FEC 80066BEC 02402821 */ addu $a1, $s2, $zero
.L80066BF0:
/* 41FF0 80066BF0 8FBF002C */ lw $ra, 0x2c($sp)
/* 41FF4 80066BF4 8FB40028 */ lw $s4, 0x28($sp)
/* 41FF8 80066BF8 8FB30024 */ lw $s3, 0x24($sp)
/* 41FFC 80066BFC 8FB20020 */ lw $s2, 0x20($sp)
/* 42000 80066C00 8FB1001C */ lw $s1, 0x1c($sp)
/* 42004 80066C04 8FB00018 */ lw $s0, 0x18($sp)
/* 42008 80066C08 03E00008 */ jr $ra
/* 4200C 80066C0C 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,115 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel viMgrMain
/* 42010 80066C10 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 42014 80066C14 AFB00018 */ sw $s0, 0x18($sp)
/* 42018 80066C18 00808021 */ addu $s0, $a0, $zero
/* 4201C 80066C1C AFBF002C */ sw $ra, 0x2c($sp)
/* 42020 80066C20 AFB40028 */ sw $s4, 0x28($sp)
/* 42024 80066C24 AFB30024 */ sw $s3, 0x24($sp)
/* 42028 80066C28 AFB20020 */ sw $s2, 0x20($sp)
/* 4202C 80066C2C AFB1001C */ sw $s1, 0x1c($sp)
/* 42030 80066C30 0C01B2E8 */ jal __osViGetCurrentContext
/* 42034 80066C34 AFA00010 */ sw $zero, 0x10($sp)
/* 42038 80066C38 94420002 */ lhu $v0, 2($v0)
/* 4203C 80066C3C 3C01800B */ lui $at, %hi(D_800AF910)
/* 42040 80066C40 A422F910 */ sh $v0, %lo(D_800AF910)($at)
/* 42044 80066C44 14400004 */ bnez $v0, .L80066C58
/* 42048 80066C48 00008821 */ addu $s1, $zero, $zero
/* 4204C 80066C4C 24020001 */ addiu $v0, $zero, 1
/* 42050 80066C50 3C01800B */ lui $at, %hi(D_800AF910)
/* 42054 80066C54 A422F910 */ sh $v0, %lo(D_800AF910)($at)
.L80066C58:
/* 42058 80066C58 02009021 */ addu $s2, $s0, $zero
/* 4205C 80066C5C 2414000D */ addiu $s4, $zero, 0xd
/* 42060 80066C60 2413000E */ addiu $s3, $zero, 0xe
.L80066C64:
/* 42064 80066C64 8E44000C */ lw $a0, 0xc($s2)
/* 42068 80066C68 27A50010 */ addiu $a1, $sp, 0x10
/* 4206C 80066C6C 0C0195BC */ jal osRecvMesg
/* 42070 80066C70 24060001 */ addiu $a2, $zero, 1
/* 42074 80066C74 8FA20010 */ lw $v0, 0x10($sp)
/* 42078 80066C78 94420000 */ lhu $v0, ($v0)
/* 4207C 80066C7C 10540005 */ beq $v0, $s4, .L80066C94
/* 42080 80066C80 00000000 */ nop
/* 42084 80066C84 1053003C */ beq $v0, $s3, .L80066D78
/* 42088 80066C88 00000000 */ nop
/* 4208C 80066C8C 08019B19 */ j .L80066C64
/* 42090 80066C90 00000000 */ nop
.L80066C94:
/* 42094 80066C94 0C019C1C */ jal __osViSwapContext
/* 42098 80066C98 00000000 */ nop
/* 4209C 80066C9C 3C02800B */ lui $v0, %hi(D_800AF910)
/* 420A0 80066CA0 9442F910 */ lhu $v0, %lo(D_800AF910)($v0)
/* 420A4 80066CA4 2442FFFF */ addiu $v0, $v0, -1
/* 420A8 80066CA8 3C01800B */ lui $at, %hi(D_800AF910)
/* 420AC 80066CAC A422F910 */ sh $v0, %lo(D_800AF910)($at)
/* 420B0 80066CB0 3042FFFF */ andi $v0, $v0, 0xffff
/* 420B4 80066CB4 1440000C */ bnez $v0, .L80066CE8
/* 420B8 80066CB8 00000000 */ nop
/* 420BC 80066CBC 0C01B2E8 */ jal __osViGetCurrentContext
/* 420C0 80066CC0 00000000 */ nop
/* 420C4 80066CC4 8C440010 */ lw $a0, 0x10($v0)
/* 420C8 80066CC8 10800004 */ beqz $a0, .L80066CDC
/* 420CC 80066CCC 00408021 */ addu $s0, $v0, $zero
/* 420D0 80066CD0 8E050014 */ lw $a1, 0x14($s0)
/* 420D4 80066CD4 0C019608 */ jal osSendMesg
/* 420D8 80066CD8 00003021 */ addu $a2, $zero, $zero
.L80066CDC:
/* 420DC 80066CDC 96020002 */ lhu $v0, 2($s0)
/* 420E0 80066CE0 3C01800B */ lui $at, %hi(D_800AF910)
/* 420E4 80066CE4 A422F910 */ sh $v0, %lo(D_800AF910)($at)
.L80066CE8:
/* 420E8 80066CE8 3C02800A */ lui $v0, %hi(__osViIntrCount)
/* 420EC 80066CEC 8C42A5E4 */ lw $v0, %lo(__osViIntrCount)($v0)
/* 420F0 80066CF0 24420001 */ addiu $v0, $v0, 1
/* 420F4 80066CF4 3C01800A */ lui $at, %hi(__osViIntrCount)
/* 420F8 80066CF8 1220000A */ beqz $s1, .L80066D24
/* 420FC 80066CFC AC22A5E4 */ sw $v0, %lo(__osViIntrCount)($at)
/* 42100 80066D00 0C019680 */ jal osGetCount
/* 42104 80066D04 00008821 */ addu $s1, $zero, $zero
/* 42108 80066D08 00408021 */ addu $s0, $v0, $zero
/* 4210C 80066D0C 02001821 */ addu $v1, $s0, $zero
/* 42110 80066D10 00001021 */ addu $v0, $zero, $zero
/* 42114 80066D14 3C01800A */ lui $at, %hi(__osCurrentTime)
/* 42118 80066D18 AC22A608 */ sw $v0, %lo(__osCurrentTime)($at)
/* 4211C 80066D1C 3C01800A */ lui $at, %hi(D_8009A60C)
/* 42120 80066D20 AC23A60C */ sw $v1, %lo(D_8009A60C)($at)
.L80066D24:
/* 42124 80066D24 3C10800A */ lui $s0, %hi(__osBaseCounter)
/* 42128 80066D28 0C019680 */ jal osGetCount
/* 4212C 80066D2C 8E10A5C8 */ lw $s0, %lo(__osBaseCounter)($s0)
/* 42130 80066D30 3C01800A */ lui $at, %hi(__osBaseCounter)
/* 42134 80066D34 AC22A5C8 */ sw $v0, %lo(__osBaseCounter)($at)
/* 42138 80066D38 00508023 */ subu $s0, $v0, $s0
/* 4213C 80066D3C 3C02800A */ lui $v0, %hi(__osCurrentTime)
/* 42140 80066D40 8C42A608 */ lw $v0, %lo(__osCurrentTime)($v0)
/* 42144 80066D44 3C03800A */ lui $v1, %hi(D_8009A60C)
/* 42148 80066D48 8C63A60C */ lw $v1, %lo(D_8009A60C)($v1)
/* 4214C 80066D4C 02002821 */ addu $a1, $s0, $zero
/* 42150 80066D50 00002021 */ addu $a0, $zero, $zero
/* 42154 80066D54 00651821 */ addu $v1, $v1, $a1
/* 42158 80066D58 0065302B */ sltu $a2, $v1, $a1
/* 4215C 80066D5C 00441021 */ addu $v0, $v0, $a0
/* 42160 80066D60 00461021 */ addu $v0, $v0, $a2
/* 42164 80066D64 3C01800A */ lui $at, %hi(__osCurrentTime)
/* 42168 80066D68 AC22A608 */ sw $v0, %lo(__osCurrentTime)($at)
/* 4216C 80066D6C 3C01800A */ lui $at, %hi(D_8009A60C)
/* 42170 80066D70 08019B19 */ j .L80066C64
/* 42174 80066D74 AC23A60C */ sw $v1, %lo(D_8009A60C)($at)
.L80066D78:
/* 42178 80066D78 0C019935 */ jal __osTimerInterrupt
/* 4217C 80066D7C 00000000 */ nop
/* 42180 80066D80 08019B19 */ j .L80066C64
/* 42184 80066D84 00000000 */ nop
/* 42188 80066D88 8FBF002C */ lw $ra, 0x2c($sp)
/* 4218C 80066D8C 8FB40028 */ lw $s4, 0x28($sp)
/* 42190 80066D90 8FB30024 */ lw $s3, 0x24($sp)
/* 42194 80066D94 8FB20020 */ lw $s2, 0x20($sp)
/* 42198 80066D98 8FB1001C */ lw $s1, 0x1c($sp)
/* 4219C 80066D9C 8FB00018 */ lw $s0, 0x18($sp)
/* 421A0 80066DA0 03E00008 */ jr $ra
/* 421A4 80066DA4 27BD0030 */ addiu $sp, $sp, 0x30
/* 421A8 80066DA8 00000000 */ nop
/* 421AC 80066DAC 00000000 */ nop

View File

@ -17,8 +17,8 @@ glabel func_80240000_842BD0
/* 842BE4 80240014 24020004 */ addiu $v0, $zero, 4
/* 842BE8 80240018 14620006 */ bne $v1, $v0, .L80240034
/* 842BEC 8024001C 00000000 */ nop
/* 842BF0 80240020 3C04800E */ lui $a0, %hi(D_800D9668)
/* 842BF4 80240024 24849668 */ addiu $a0, $a0, %lo(D_800D9668)
/* 842BF0 80240020 3C04800E */ lui $a0, %hi(wMapBgName)
/* 842BF4 80240024 24849668 */ addiu $a0, $a0, %lo(wMapBgName)
/* 842BF8 80240028 3C058025 */ lui $a1, %hi(D_8024F550_852120)
/* 842BFC 8024002C 0C01953C */ jal sprintf
/* 842C00 80240030 24A5F550 */ addiu $a1, $a1, %lo(D_8024F550_852120)

10
ver/us/asm/os/padding.s Normal file
View File

@ -0,0 +1,10 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .text
.space 0x10

View File

@ -129,12 +129,13 @@ segments:
- [0x3BCC0, c, os/nusys/nuContDataLock]
- [0x3BD20, c, os/nusys/nuContQueryRead]
- [0x3BD40, hasm, os/osSetIntMask]
- [0x3BDE0, c, os/osCreatePiManager]
- [0x3C160, c, os/osEPiWriteIo, gcc_272 -O3]
- [0x3C1C0, c, os/osEPiReadIo, gcc_272 -O3]
- [0x3C220, c, os/osEPiStartDma, gcc_272 -O3]
- [0x3C2C0, c, os/osEPiLinkHandle, gcc_272 -O3]
- [0x3C310, c, os/osCartRomInit]
- [0x3BDE0, c, os/pimgr, gcc_272 -O3]
- [0x3BF70, c, os/epirawdma, gcc_272 -O3]
- [0x3C160, c, os/epiwrite, gcc_272 -O3]
- [0x3C1C0, c, os/epiread, gcc_272 -O3]
- [0x3C220, c, os/epidma, gcc_272 -O3]
- [0x3C2C0, c, os/epilinkhandle, gcc_272 -O3]
- [0x3C310, c, os/cartrominit, gcc_272 -O3]
- [0x3C490, c, os/devmgr, gcc_272 -O3]
- [0x3C850, c, os/piacs, gcc_272 -O3]
- [0x3C940, c, os/aigetlength, gcc_272 -O3]
@ -147,11 +148,11 @@ segments:
- [0x3CCD0, hasm, os/osWritebackDCacheAll]
- [0x3CD00, c, os/contquery, gcc_272 -O3]
- [0x3CDA0, c, os/contreaddata, gcc_272 -O3]
- [0x3CF80, c, os/controller]
- [0x3D290, c, os/osVirtualToPhysical, gcc_272 -O3]
- [0x3CF80, c, os/controller, gcc_272 -O3]
- [0x3D290, c, os/virtualtophysical, gcc_272 -O3]
- [0x3D2F0, c, os/sqrtf, -ffast-math]
- [0x3D300, c, os/coss, gcc_272 -O3]
- [0x3D330, c, os/guFrustum, gcc_272 -O3]
- [0x3D330, c, os/frustum, gcc_272 -O3]
- [0x3D5B0, c, os/guLookAt, gcc_272 -O3]
- [0x3DCC0, c, os/lookathil, gcc_272 -O3]
- [0x3E720, c, os/lookatref, gcc_272 -O3]
@ -165,20 +166,20 @@ segments:
- [0x3FE10, c, os/string, gcc_272 -O3]
- [0x3FEA0, c, os/xprintf, gcc_272 -O3]
- [0x408EC, c, os/sprintf, gcc_272 -O3]
- [0x40980, c, os/osCreateMesgQueue]
- [0x409B0, c, os/osJamMesg, gcc_272 -O3]
- [0x40AF0, c, os/osRecvMesg, gcc_272 -O3]
- [0x40980, c, os/createmesgqueue]
- [0x409B0, c, os/jammesg, gcc_272 -O3]
- [0x40AF0, c, os/recvmesg, gcc_272 -O3]
- [0x40C20, c, os/sendmesg, gcc_272 -O3]
- [0x40D50, c, os/seteventmesg, gcc_272 -O3]
- [0x40E00, hasm, os/osGetCount]
- [0x40E10, c, os/sptask, gcc_272 -O3]
- [0x41050, c, os/osSpTaskYield, gcc_272 -O3]
- [0x41050, c, os/sptaskyield, gcc_272 -O3]
- [0x41070, c, os/sptaskyielded, gcc_272 -O3]
- [0x410C0, c, os/sirawdma, gcc_272 -O3]
- [0x41170, c, os/siacs, gcc_272 -O3]
- [0x41260, c, os/createthread, gcc_272 -O3]
- [0x41330, c, os/osGetThreadPri, gcc_272 -O3]
- [0x41350, c, os/osSetThreadPri, gcc_272 -O3]
- [0x41330, c, os/getthreadpri, gcc_272 -O3]
- [0x41350, c, os/setthreadpri, gcc_272 -O3]
- [0x41420, c, os/startthread, gcc_272 -O3]
- [0x41540, c, os/stopthread, gcc_272 -O3]
- [0x41600, c, os/thread, gcc_272 -O3]
@ -195,7 +196,8 @@ segments:
- [0x41DB0, c, os/vigetcurrframebuf, gcc_272 -O3]
- [0x41DF0, c, os/vigetnextframebuf, gcc_272 -O3]
- [0x41E30, c, os/vigetmode, gcc_272 -O3]
- [0x41E70, c, os/vimgr]
- [0x41E70, c, os/vimgr, gcc_272 -O3]
- [0x421B0, c, os/vitbl, gcc_272 -O3]
- [0x421B0, c, os/visetevent, gcc_272 -O3]
- [0x42210, c, os/visetmode, gcc_272 -O3]
- [0x42260, c, os/visetspecial, gcc_272 -O3]
@ -217,7 +219,7 @@ segments:
- [0x42DE0, c, os/guMtxXFML, gcc_272 -O3]
- [0x42E70, c, os/guMtxXFMF, gcc_272 -O3]
- [0x42F20, c, os/guRotate, gcc_272 -O3]
- [0x43200, c, os/motor]
- [0x43200, c, os/motor, gcc_272 -O3]
- [0x43590, c, os/pfsallocatefile, gcc_272 -O3]
- [0x439C0, c, os/pfsdeletefile, gcc_272 -O3]
- [0x43BE0, c, os/pfsreadwritefile, gcc_272 -O3]
@ -255,7 +257,7 @@ segments:
- [0x47AB0, hasm, os/__osSetWatchLo]
- [0x47AC0, c, os/sp, gcc_272 -O3]
- [0x47AE0, c, os/spgetstat, gcc_272 -O3]
- [0x47AF0, c, os/sptaskyield, gcc_272 -O3]
- [0x47AF0, c, os/spsetstat, gcc_272 -O3]
- [0x47B00, c, os/spsetpc, gcc_272 -O3]
- [0x47B30, c, os/sprawdma, gcc_272 -O3]
- [0x47BC0, c, os/sirawread, gcc_272 -O3]
@ -264,11 +266,12 @@ segments:
- [0x47D50, c, os/destroythread, gcc_272 -O3]
- [0x47E30, hasm, os/osMapTLBRdb]
- [0x47E90, c, os/vi]
- [0x47FA0, c, os/vigetcurrcontext]
- [0x47FA0, c, os/vigetcurrcontext, gcc_272 -O3]
- [0x47FB0, hasm, os/padding]
- [0x47FC0, hasm, os/guNormalize]
- [0x48020, c, os/pfschecker, gcc_272 -O3]
- [0x48740, c, os/pfsisplug, gcc_272 -O3]
- [0x48A20, c, os/ldiv]
- [0x48A20, c, os/ldiv, gcc_272 -O3]
- [0x48BE0, c, os/osSiDeviceBusy]
- [0x48C00, c, os/divdi3]
- [0x491C0, c, os/moddi3]
@ -340,8 +343,9 @@ segments:
- [0x6F0E0, .data, os/nusys/nuContRmbMgr]
- [0x6F110, .data, os/nusys/nuGfxFuncSet]
- [0x6F120, .data, os/nusys/nuContMgr]
- [0x6F120, .data, os/osCreatePiManager]
- [0x6F180, .data, os/osCartRomInit]
- [0x6F120, .data, os/pimgr]
- [0x6F120, .data, os/epirawdma]
- [0x6F180, .data, os/cartrominit]
- [0x6F190, .data, os/piacs]
- [0x6F1A0, .data, os/aisetnextbuf]
- [0x6F1B0, .data, os/controller]
@ -351,8 +355,11 @@ segments:
- [0x6F9E0, .data, os/xprintf]
- [0x6FA30, .data, os/seteventmesg]
- [0x6FA40, .data, os/siacs]
- [0x6FA50, .data, os/osSetThreadPri]
- [0x6FA70, data] # libultra data
- [0x6FA50, .data, os/setthreadpri]
- [0x6FA70, .data, os/timerintr] # libultra data
- [auto, .data, os/vimgr]
- [auto, .data, os/vitbl]
- [0x70C20, data, 70C20]
- [0x70E30, .data, battle/battle]
- [0x71430, bin, gspF3DEX2kawase_fifo_text]
- [0x72A60, bin, gspF3DEX2kawase_fifo_data]
@ -374,6 +381,7 @@ segments:
- [0x80850, c, 80850_len_3060]
- [0x838B0, c, world/actions] # DUMMY ROM
- [0x838B0, c, world/partners]
- [0x891B0, hasm, bss2_2]
- [0x891B0, c, 891b0_len_fb0]
- [0x8A160, c, 8a160_len_700]
- [0x8A860, c, 8a860_len_3f30]

View File

@ -924,7 +924,7 @@ nuContDataUnLock = 0x800608F0; // type:func rom:0x3BCF0
nuContQueryRead = 0x80060920; // type:func rom:0x3BD20
osSetIntMask = 0x80060940; // type:func rom:0x3BD40
osCreatePiManager = 0x800609E0; // type:func rom:0x3BDE0
osEPiRawStartDma = 0x80060B70; // type:func rom:0x3BF70
__osEPiRawStartDma = 0x80060B70; // type:func rom:0x3BF70
osEPiWriteIo = 0x80060D60; // type:func rom:0x3C160
osEPiReadIo = 0x80060DC0; // type:func rom:0x3C1C0
osEPiStartDma = 0x80060E20; // type:func rom:0x3C220
@ -2422,7 +2422,7 @@ nuContCallBack = 0x80093D38; // type:data rom:0x6F138
__osPiDevMgr = 0x80093D50; // type:data rom:0x6F150 size:0x1C
__osPiTable = 0x80093D6C; // type:data rom:0x6F16C
__osCurrentHandle = 0x80093D70; // type:data rom:0x6F170
D_80093D80 = 0x80093D80; // type:data rom:0x6F180
first = 0x80093D80; // type:data rom:0x6F180
__osPiAccessQueueEnabled = 0x80093D90; // type:data rom:0x6F190
hdwrBugFlag = 0x80093DA0; // type:data rom:0x6F1A0
dtor = 0x80093DC0; // type:data rom:0x6F1C0
@ -2580,7 +2580,7 @@ D_8009A620 = 0x8009A620; // type:data rom:0x75A20
D_8009A624 = 0x8009A624; // type:data rom:0x75A24
gAuAmbienceManager = 0x8009A628; // type:data rom:0x75A28
__osTimerCounter = 0x8009A62C; // type:data rom:0x75A2C
D_8009A630 = 0x8009A630; // type:data rom:0x75A30
nuIdleFunc = 0x8009A630; // type:data rom:0x75A30
gCurrentCamID = 0x8009A634; // type:data rom:0x75A34
nuPiCartHandle = 0x8009A638; // rom:0x75A38
D_8009A63C = 0x8009A63C; // type:data rom:0x75A3C
@ -3030,7 +3030,7 @@ func_800F0490 = 0x800F0490; // type:func rom:0x89940
nuContWaitMesgBuf = 0x800AE6D0; // type:data rom:0x89AD0
nuContDataMutexBuf = 0x800AE6D4; // type:data rom:0x89AD4
D_800AC6D8 = 0x800AE6D8; // type:data rom:0x89AD8
piMgrThread = 0x800AE6E0; // type:data rom:0x89AE0
piThread = 0x800AE6E0; // type:data rom:0x89AE0
func_800F0864 = 0x800F0864; // type:func rom:0x89D14
func_800F09EC = 0x800F09EC; // type:func rom:0x89E9C
func_800F0B3C = 0x800F0B3C; // type:func rom:0x89FEC
@ -3043,31 +3043,31 @@ hide_popup_menu = 0x800F13B0; // type:func rom:0x8A860
destroy_popup_menu = 0x800F1538; // type:func rom:0x8A9E8
func_800F16CC = 0x800F16CC; // type:func rom:0x8AB7C
D_800AF890 = 0x800AF894; // type:data rom:0x8AC94
piMgrMesgBuff = 0x800AF8A8; // type:data rom:0x8ACA8
piEventBuf = 0x800AF8A8; // type:data rom:0x8ACA8
D_800AF8AC = 0x800AF8AC; // type:data rom:0x8ACAC
piAccessBuf = 0x800AF8B0; // type:data rom:0x8ACB0
D_800AF8B4 = 0x800AF8B4; // type:data rom:0x8ACB4
tmp_task = 0x800AF8C0; // type:data rom:0x8ACC0
siAccessBuf = 0x800AF900; // type:data rom:0x8AD00
D_800AF904 = 0x800AF904; // type:data rom:0x8AD04
D_800AF910 = 0x800AF910; // type:data rom:0x8AD10
retrace = 0x800AF910; // type:data rom:0x8AD10
D_800AF914 = 0x800AF914; // type:data rom:0x8AD14
D_800AF918 = 0x800AF918; // type:data rom:0x8AD18
viThread = 0x800AF918; // type:data rom:0x8AD18
D_800AF91C = 0x800AF91C; // type:data rom:0x8AD1C
popup_menu_update = 0x800F1A10; // type:func rom:0x8AEC0
D_800B0AD0 = 0x800B0AD0; // type:data rom:0x8BED0
viEventQueue = 0x800B0AD0; // type:data rom:0x8BED0
D_800B0AD4 = 0x800B0AD4; // type:data rom:0x8BED4
D_800B0AE8 = 0x800B0AE8; // type:data rom:0x8BEE8
viEventBuf = 0x800B0AE8; // type:data rom:0x8BEE8
D_800B0AEC = 0x800B0AEC; // type:data rom:0x8BEEC
D_800B0B00 = 0x800B0B00; // type:data rom:0x8BF00
viRetraceMsg = 0x800B0B00; // type:data rom:0x8BF00
D_800B0B02 = 0x800B0B02; // type:data rom:0x8BF02
D_800B0B04 = 0x800B0B04; // type:data rom:0x8BF04
D_800B0B08 = 0x800B0B08; // type:data rom:0x8BF08
D_800B0B18 = 0x800B0B18; // type:data rom:0x8BF18
viCounterMsg = 0x800B0B18; // type:data rom:0x8BF18
D_800B0B1A = 0x800B0B1A; // type:data rom:0x8BF1A
D_800B0B1C = 0x800B0B1C; // type:data rom:0x8BF1C
D_800B0B20 = 0x800B0B20; // type:data rom:0x8BF20
D_800B0B30 = 0x800B0B30; // type:data rom:0x8BF30
__MotorDataBuf = 0x800B0B30; // type:data rom:0x8BF30
D_800B0B34 = 0x800B0B34; // type:data rom:0x8BF34
D_800B0B6C = 0x800B0B6C; // type:data rom:0x8BF6C
D_800B0B70 = 0x800B0B70; // type:data rom:0x8BF70
@ -3088,7 +3088,7 @@ D_800B0F08 = 0x800B0F08; // type:data rom:0x8C308
D_800B0F0C = 0x800B0F0C; // type:data rom:0x8C30C
gCurrentEncounter = 0x800B0F10; // rom:0x8C310 size:0xB0
popup_menu_draw_menu_contents = 0x800F3680; // type:func rom:0x8CB30
LeoDiskHandle = 0x800B1B08; // type:data rom:0x8CF08
__Dom2SpeedParam = 0x800B1B08; // type:data rom:0x8CF08
D_800B1B0C = 0x800B1B0C; // type:data rom:0x8CF0C
D_800B1B0D = 0x800B1B0D; // type:data rom:0x8CF0D
D_800B1B0E = 0x800B1B0E; // type:data rom:0x8CF0E
@ -3116,7 +3116,7 @@ gCollisionData = 0x800B42E0; // type:data rom:0x8F6E0 size:0x10
D_800B42E4 = 0x800B42E4; // type:data rom:0x8F6E4
nuGfxMesgQ = 0x800B42F0; // type:data rom:0x8F6F0
D_800B42F4 = 0x800B42F4; // type:data rom:0x8F6F4
D_800B4308 = 0x800B4308; // type:data rom:0x8F708
__CartRomHandle = 0x800B4308; // type:data rom:0x8F708
D_800B430C = 0x800B430C; // type:data rom:0x8F70C
D_800B430D = 0x800B430D; // type:data rom:0x8F70D
D_800B430E = 0x800B430E; // type:data rom:0x8F70E
@ -3129,7 +3129,7 @@ D_800B431C = 0x800B431C; // type:data rom:0x8F71C
__osPiAccessQueue = 0x800B4380; // type:data rom:0x8F780
D_800B4384 = 0x800B4384; // type:data rom:0x8F784
gEffectInstances = 0x800B4398; // type:data rom:0x8F798
CartRomHandle = 0x800B4518; // type:data rom:0x8F918
__Dom1SpeedParam = 0x800B4518; // type:data rom:0x8F918
D_800B451C = 0x800B451C; // type:data rom:0x8F91C
D_800B451D = 0x800B451D; // type:data rom:0x8F91D
D_800B451E = 0x800B451E; // type:data rom:0x8F91E
@ -4096,7 +4096,7 @@ clear_animator_list = 0x8011E224; // type:func rom:0xB4924
D_800D95E8 = 0x800D95E8; // type:data rom:0xB49E8
reset_animator_list = 0x8011E310; // type:func rom:0xB4A10
D_800D9620 = 0x800D9620; // type:data rom:0xB4A20
D_800D9668 = 0x800D9668; // type:data rom:0xB4A68
wMapBgName = 0x800D9668; // type:data rom:0xB4A68
__osPfsInodeCache = 0x800D9680; // type:data rom:0xB4A80
delete_model_animator_node = 0x8011E398; // type:func rom:0xB4A98
delete_model_animator_nodes = 0x8011E400; // type:func rom:0xB4B00
@ -4184,7 +4184,7 @@ D_800DC4F0 = 0x800DC4F0; // type:data rom:0xB78F0
D_800DC4F4 = 0x800DC4F4; // type:data rom:0xB78F4
D_800DC4F8 = 0x800DC4F8; // type:data rom:0xB78F8
D_800DC4FC = 0x800DC4FC; // type:data rom:0xB78FC
nuIdleFunc = 0x8009A5A8; // type:data rom:0xB7900
D_8009A5A8 = 0x8009A5A8; // type:data rom:0xB7900
draw_entity_model_A = 0x80121CE8; // type:func rom:0xB83E8
draw_entity_model_B = 0x80121EB8; // type:func rom:0xB85B8
draw_entity_model_C = 0x80122088; // type:func rom:0xB8788
@ -25751,7 +25751,7 @@ D_800A15A4 = 0x800A15A4; // type:data
dead_gOverrideFlags = 0x800A15A8; // type:data
D_800A15C4 = 0x800A15C4; // type:data
D_800A15CC = 0x800A15CC; // type:data
__osPiMesgQueue = 0x800AF890; // type:data
piEventQueue = 0x800AF890; // type:data
__osFlashID = 0x800B0C30; // type:data
__osFlashMsg = 0x800B0C40; // type:data
__osFlashMessageQ = 0x800B0C58; // type:data
@ -25851,7 +25851,6 @@ get_default_variation_for_song = 0x8014A430; //
D_8014F120 = 0x8014F120; // type:data
D_8014F128 = 0x8014F128; // type:data
rodata_padding_2 = 0x80150BBC; // type:data
B_801512B0 = 0x801512B0; // type:data
D_801512B0 = 0x801512B0; // type:data
D_801512E8 = 0x801512E8; // type:data
B_801512F0 = 0x801512F0; // type:data