mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 00:42:34 +01:00
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:
parent
fab07c1c8c
commit
c700116f41
@ -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 );
|
||||
|
@ -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 */
|
||||
|
||||
/*
|
||||
|
@ -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,\
|
||||
|
@ -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
81
include/gcc/stdlib.h
Normal 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
|
@ -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)
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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"
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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};
|
||||
|
@ -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;
|
||||
|
||||
|
@ -48,8 +48,7 @@ Gfx D_80074230[] = {
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// BSS
|
||||
extern BSS s32 timeFreezeMode;
|
||||
s32 timeFreezeMode;
|
||||
|
||||
extern s16 D_8009A690;
|
||||
|
||||
|
@ -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
66
src/os/cartrominit.c
Normal 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;
|
||||
}
|
@ -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
24
src/os/epirawdma.c
Normal 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;
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
137
src/os/motor.c
137
src/os/motor.c
@ -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;
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -1,6 +0,0 @@
|
||||
#include "ultra64.h"
|
||||
#include "include_asm.h"
|
||||
|
||||
u32 D_80093D80 = 1;
|
||||
|
||||
INCLUDE_ASM(OSPiHandle*, "os/osCartRomInit", osCartRomInit, void);
|
@ -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);
|
@ -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
66
src/os/pimgr.c
Normal 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
6
src/os/spsetstat.c
Normal file
@ -0,0 +1,6 @@
|
||||
#include "PR/os_internal.h"
|
||||
#include "PR/rcp.h"
|
||||
|
||||
void __osSpSetStatus(u32 data) {
|
||||
IO_WRITE(SP_STATUS_REG, data);
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
119
src/os/vimgr.c
119
src/os/vimgr.c
@ -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
1742
src/os/vitbl.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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));
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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()}",
|
||||
|
@ -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
|
||||
|
@ -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
221
ver/us/asm/bss2_2.s
Normal 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
78
ver/us/asm/data/70C20.data.s
Normal file
78
ver/us/asm/data/70C20.data.s
Normal 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
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
10
ver/us/asm/os/padding.s
Normal 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
|
@ -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]
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user