Merge pull request #174 from Ryan-Myers/master

Uncountable number of changes bringing over 40 new matches, almost entirely focused on libultra.
This commit is contained in:
David Benepe
2021-10-15 15:03:03 -05:00
committed by GitHub
170 changed files with 2461 additions and 4380 deletions
+4
View File
@@ -13,6 +13,10 @@ ucode/
# Linker file is automatically generated, so it should be ignored
dkr.ld
# CTX files for mips2c should be ignored as we generate those
ctx.c
ctx_includes.c
# Misc stuff that should be ignored.
.*/
+3 -1
View File
@@ -141,7 +141,7 @@ TEXBUILDER = $(TOOLS_DIR)/dkr_texbuilder
COMPRESS = $(TOOLS_DIR)/dkr_decompressor -c
LIB_DIRS := lib/
ASM_DIRS := asm/ asm/boot/ asm/assets/ lib/asm/
ASM_DIRS := asm/ asm/boot/ asm/assets/ lib/asm/ lib/asm/non_decompilable
SRC_DIRS := $(sort $(dir $(wildcard src/* src/**/*))) $(sort $(dir $(wildcard lib/src/* lib/src/**/* lib/src/**/**/*)))
GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(SRC_DIRS)
@@ -267,6 +267,7 @@ $(BUILD_DIR)/lib/src/al/%.o: OPT_FLAGS := -O3
$(BUILD_DIR)/lib/src/os/%.o: OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/os/osViMgr.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/src/os/osCreatePiManager.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/src/os/osMotor.o: OPT_FLAGS := -O2
$(BUILD_DIR)/lib/src/libc/xprintf.o : OPT_FLAGS := -O3
$(BUILD_DIR)/lib/src/al/unknown_0C9C90.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0
#$(BUILD_DIR)/lib/src/libc/llcvt.o: OPT_FLAGS :=
@@ -274,6 +275,7 @@ $(BUILD_DIR)/lib/src/al/unknown_0C9C90.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0
$(BUILD_DIR)/lib/%.o: MIPSISET := -mips2
$(BUILD_DIR)/lib/src/mips1/%.o: MIPSISET := -mips1
$(BUILD_DIR)/lib/src/os/osMotor.o: MIPSISET := -mips1
# asm-processor currently does not support -O3, so this is my workaround.
$(BUILD_DIR)/lib/src/al/global_asm/%.o: OPT_FLAGS := -O2
+23 -23
View File
@@ -113,30 +113,30 @@ s32 is_drumstick_unlocked(void) {
}
```
As of September 27th 2021, this is our current score:
As of October 15th 2021, this is our current score:
```
==================================================================
ADVENTURE ONE (ASM -> C Decompilation)
------------------------ 16.16% Complete -------------------------
# Decompiled functions: 934
# GLOBAL_ASM remaining: 848
# NON_MATCHING functions: 104
-------------------------- Game Status ---------------------------
Balloons: 8/47, Keys: 1/4, Trophies: 0/5
T.T. Amulets: 1/4, Wizpig Amulets: 0/4
------------------------------------------------------------------
We are collecting silver coins in Ancient Lake. (5/8 silver coins)
==================================================================
ADVENTURE TWO (Cleanup & Documentation)
------------------------ 0.80% Complete -------------------------
# Documented functions: 65
# Undocumented remaining: 1717
-------------------------- Game Status ---------------------------
Balloons: 0/47, Keys: 0/4, Trophies: 0/5
T.T. Amulets: 0/4, Wizpig Amulets: 0/4
------------------------------------------------------------------
We are collecting the first balloon on Timber's Island.
==================================================================
===================================================================
ADVENTURE ONE (ASM -> C Decompilation)
------------------------- 17.77% Complete -------------------------
# Decompiled functions: 972
# GLOBAL_ASM remaining: 786
# NON_MATCHING functions: 104
--------------------------- Game Status ---------------------------
Balloons: 9/47, Keys: 1/4, Trophies: 0/5
T.T. Amulets: 1/4, Wizpig Amulets: 0/4
-------------------------------------------------------------------
We are collecting silver coins in Fossil Canyon. (6/8 silver coins)
===================================================================
ADVENTURE TWO (Cleanup & Documentation)
------------------------- 0.80% Complete -------------------------
# Documented functions: 65
# Undocumented remaining: 1693
--------------------------- Game Status ---------------------------
Balloons: 0/47, Keys: 0/4, Trophies: 0/5
T.T. Amulets: 0/4, Wizpig Amulets: 0/4
-------------------------------------------------------------------
We are collecting the first balloon on Timber's Island.
===================================================================
```
@@ -52,7 +52,7 @@ glabel func_80074B34
/* 0757F4 80074BF4 15C00004 */ bnez $t6, .L80074C08
/* 0757F8 80074BF8 3C048012 */ lui $a0, %hi(D_80124010) # $a0, 0x8012
/* 0757FC 80074BFC 8C844010 */ lw $a0, %lo(D_80124010)($a0)
/* 075800 80074C00 0C033B48 */ jal func_800CED20
/* 075800 80074C00 0C033B48 */ jal osPfsInit
/* 075804 80074C04 03203025 */ move $a2, $t9
.L80074C08:
/* 075808 80074C08 8FA40058 */ lw $a0, 0x58($sp)
@@ -68,7 +68,7 @@ glabel func_800758DC
/* 0765D0 800759D0 00401825 */ move $v1, $v0
/* 0765D4 800759D4 8E840000 */ lw $a0, ($s4)
/* 0765D8 800759D8 02602825 */ move $a1, $s3
/* 0765DC 800759DC 0C033B48 */ jal func_800CED20
/* 0765DC 800759DC 0C033B48 */ jal osPfsInit
/* 0765E0 800759E0 02A03025 */ move $a2, $s5
/* 0765E4 800759E4 00401825 */ move $v1, $v0
.L800759E8:
@@ -90,7 +90,7 @@ glabel func_800758DC
/* 07661C 80075A1C 24010001 */ li $at, 1
/* 076620 80075A20 8E840000 */ lw $a0, ($s4)
/* 076624 80075A24 02602825 */ move $a1, $s3
/* 076628 80075A28 0C033B48 */ jal func_800CED20
/* 076628 80075A28 0C033B48 */ jal osPfsInit
/* 07662C 80075A2C 02A03025 */ move $a2, $s5
/* 076630 80075A30 14520008 */ bne $v0, $s2, .L80075A54
/* 076634 80075A34 02602825 */ move $a1, $s3
@@ -67,13 +67,13 @@ glabel func_80075B18
/* 076818 80075C18 018D9021 */ addu $s2, $t4, $t5
/* 07681C 80075C1C 8E840000 */ lw $a0, ($s4)
/* 076820 80075C20 02402825 */ move $a1, $s2
/* 076824 80075C24 0C033B48 */ jal func_800CED20
/* 076824 80075C24 0C033B48 */ jal osPfsInit
/* 076828 80075C28 02003025 */ move $a2, $s0
/* 07682C 80075C2C 24010002 */ li $at, 2
/* 076830 80075C30 14410004 */ bne $v0, $at, .L80075C44
/* 076834 80075C34 02402825 */ move $a1, $s2
/* 076838 80075C38 8E840000 */ lw $a0, ($s4)
/* 07683C 80075C3C 0C033B48 */ jal func_800CED20
/* 07683C 80075C3C 0C033B48 */ jal osPfsInit
/* 076840 80075C40 02003025 */ move $a2, $s0
.L80075C44:
/* 076844 80075C44 14400006 */ bnez $v0, .L80075C60
+44
View File
@@ -0,0 +1,44 @@
#ifndef _ULTRA64_OS_INTERNAL_H_
#define _ULTRA64_OS_INTERNAL_H_
/* Internal functions used by the operating system */
/* Do not include this header in application code */
#include "os_thread.h"
/*
* Leo Disk
*/
/* transfer mode */
#define LEO_BLOCK_MODE 1
#define LEO_TRACK_MODE 2
#define LEO_SECTOR_MODE 3
/* Variables */
/*
* CPU counter increments at 3/4 of bus clock rate:
*
* Bus Clock Proc Clock Counter (1/2 Proc Clock)
* --------- ---------- ------------------------
* 62.5 Mhz 93.75 Mhz 46.875 Mhz
*/
extern u64 osClockRate;
#define OS_CLOCK_RATE 62500000LL
#define OS_CPU_COUNTER (OS_CLOCK_RATE*3/4)
#define OS_NSEC_TO_CYCLES(n) (((u64)(n)*(OS_CPU_COUNTER/15625000LL))/(1000000000LL/15625000LL))
#define OS_USEC_TO_CYCLES(n) (((u64)(n)*(OS_CPU_COUNTER/15625LL))/(1000000LL/15625LL))
#define OS_CYCLES_TO_NSEC(c) (((u64)(c)*(1000000000LL/15625000LL))/(OS_CPU_COUNTER/15625000LL))
#define OS_CYCLES_TO_USEC(c) (((u64)(c)*(1000000LL/15625LL))/(OS_CPU_COUNTER/15625LL))
/* Functions */
u32 __osProbeTLB(void *);
u32 __osDisableInt(void);
void __osRestoreInt(u32);
OSThread *__osGetCurrFaultedThread(void);
u32 osVirtualToPhysical(void *addr);
#endif
+1 -1
View File
@@ -187,7 +187,7 @@ typedef struct {
/* Controller interface */
extern s32 osContInit(OSMesgQueue *mq, u8 *bitpattern, OSContStatus *status);
extern s32 osContInit(OSMesgQueue *mq, u8 *bitpattern, OSContStatus *data);
extern s32 osContReset(OSMesgQueue *, OSContStatus *);
extern s32 osContStartQuery(OSMesgQueue *);
extern s32 osContStartReadData(OSMesgQueue *mq);
+114 -30
View File
@@ -1,35 +1,119 @@
#ifndef _ULTRA64_OS_INTERNAL_H_
#define _ULTRA64_OS_INTERNAL_H_
/**************************************************************************
* *
* Copyright (C) 1995, Silicon Graphics, Inc. *
* *
* These coded instructions, statements, and computer programs contain *
* unpublished proprietary information of Silicon Graphics, Inc., and *
* are protected by Federal copyright law. They may not be disclosed *
* to third parties or copied or duplicated in any form, in whole or *
* in part, without the prior written consent of Silicon Graphics, Inc. *
* *
**************************************************************************/
/* Internal functions used by the operating system */
/* Do not include this header in application code */
#include "os_thread.h"
/* Variables */
extern u64 osClockRate;
/*
* CPU counter increments at 3/4 of bus clock rate:
/**************************************************************************
*
* Bus Clock Proc Clock Counter (1/2 Proc Clock)
* --------- ---------- ------------------------
* 62.5 Mhz 93.75 Mhz 46.875 Mhz
*/
extern u64 osClockRate;
* $Revision: 1.18 $
* $Date: 1997/02/11 08:26:14 $
* $Source: /disk6/Master/cvsmdev2/PR/include/os_internal.h,v $
*
**************************************************************************/
#define OS_CLOCK_RATE 62500000LL
#define OS_CPU_COUNTER (OS_CLOCK_RATE*3/4)
#define OS_NSEC_TO_CYCLES(n) (((u64)(n)*(OS_CPU_COUNTER/15625000LL))/(1000000000LL/15625000LL))
#define OS_USEC_TO_CYCLES(n) (((u64)(n)*(OS_CPU_COUNTER/15625LL))/(1000000LL/15625LL))
#define OS_CYCLES_TO_NSEC(c) (((u64)(c)*(1000000000LL/15625000LL))/(OS_CPU_COUNTER/15625000LL))
#define OS_CYCLES_TO_USEC(c) (((u64)(c)*(1000000LL/15625LL))/(OS_CPU_COUNTER/15625LL))
/* Functions */
u32 __osProbeTLB(void *);
u32 __osDisableInt(void);
void __osRestoreInt(u32);
OSThread *__osGetCurrFaultedThread(void);
#ifndef _OS_INTERNAL_H_
#define _OS_INTERNAL_H_
#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif
#include <PR/os.h>
#include <PR/os_exception.h>
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
/* Routines to get/fetch coprocessor 0 registers */
extern u32 __osGetCause(void);
extern void __osSetCause(u32);
extern u32 __osGetCompare(void);
extern void __osSetCompare(u32);
extern u32 __osGetConfig(void);
extern void __osSetConfig(u32);
extern void __osSetCount(u32);
extern u32 __osGetSR(void);
extern void __osSetSR(u32);
extern u32 __osDisableInt(void);
extern void __osRestoreInt(u32);
/* Routines to get/set floating-point control and status register */
extern u32 __osSetFpcCsr(u32);
extern u32 __osGetFpcCsr(void);
/* Routine for HW interrupt "handler" */
extern void __osSetHWIntrRoutine(OSHWIntr, s32 (*handler)(void));
/* Routine for global interrupt mask */
extern void __osSetGlobalIntMask(OSHWIntr);
extern void __osResetGlobalIntMask(OSHWIntr);
/* Routine for global interrupt mask */
extern s32 __osLeoInterrupt(void);
/* Routines for fetch TLB info */
extern u32 __osGetTLBASID(void);
extern u32 __osGetTLBPageMask(s32);
extern u32 __osGetTLBHi(s32);
extern u32 __osGetTLBLo0(s32);
extern u32 __osGetTLBLo1(s32);
/* Serial interface (Si) */
extern u32 __osSiGetStatus(void);
extern s32 __osSiRawWriteIo(u32, u32);
extern s32 __osSiRawReadIo(u32, u32 *);
extern s32 __osSiRawStartDma(s32, void *);
/* Signal processor interface (Sp) */
extern u32 __osSpGetStatus(void);
extern void __osSpSetStatus(u32);
extern s32 __osSpSetPc(u32);
extern s32 __osSpRawWriteIo(u32, u32);
extern s32 __osSpRawReadIo(u32, u32 *);
extern s32 __osSpRawStartDma(s32, u32, void *, u32);
/* Error handling */
extern void __osError(s16, s16, ...);
extern OSThread * __osGetCurrFaultedThread(void);
extern OSThread * __osGetNextFaultedThread(OSThread *);
/* Development board functions */
extern void __osGIOInit(s32);
extern void __osGIOInterrupt(s32);
extern void __osGIORawInterrupt(s32);
/* For debugger use */
extern OSThread * __osGetActiveQueue(void);
/* Debug port */
extern void __osSyncPutChars(int, int, const char *);
extern int __osSyncGetChars(char *);
extern void __osAsyncPutChars(int, int, const char *);
extern int __osAsyncGetChars(char *);
extern int __osAtomicInc(unsigned int *p);
extern int __osAtomicDec(unsigned int *p);
/* routine for rdb port */
extern u32 __osRdbSend(u8 *buf, u32 size, u32 type);
#endif /* _LANGUAGE_C */
#ifdef _LANGUAGE_C_PLUS_PLUS
}
#endif
#endif /* !_OS_INTERNAL_H */
+72 -72
View File
@@ -52,17 +52,17 @@
0x0800_0000 .. 0x0fff_ffff cartridge domain 2
0x1000_0000 .. 0x1fbf_ffff cartridge domain 1
0x1fc0_0000 .. 0x1fc0_07bf PIF Boot Rom (1984 bytes)
0x1fc0_07c0 .. 0x1fc0_07ff PIF (JoyChannel) RAM (64 bytes)
0x1fc0_0800 .. 0x1fcf_ffff Reserved
0x1fd0_0000 .. 0x7fff_ffff cartridge domain 1
0x8000_0000 .. 0xffff_ffff external SysAD device
0x1fc0_0000 .. 0x1fc0_07bf PIF Boot Rom (1984 bytes)
0x1fc0_07c0 .. 0x1fc0_07ff PIF (JoyChannel) RAM (64 bytes)
0x1fc0_0800 .. 0x1fcf_ffff Reserved
0x1fd0_0000 .. 0x7fff_ffff cartridge domain 1
0x8000_0000 .. 0xffff_ffff external SysAD device
The Indy development board use cartridge domain 1:
0x1000_0000 .. 0x10ff_ffff RAMROM
0x1800_0000 .. 0x1800_0003 GIO interrupt (6 bits valid in 4 bytes)
0x1800_0400 .. 0x1800_0403 GIO sync (6 bits valid in 4 bytes)
0x1800_0800 .. 0x1800_0803 CART interrupt (6 bits valid in 4 bytes)
0x1800_0000 .. 0x1800_0003 GIO interrupt (6 bits valid in 4 bytes)
0x1800_0400 .. 0x1800_0403 GIO sync (6 bits valid in 4 bytes)
0x1800_0800 .. 0x1800_0803 CART interrupt (6 bits valid in 4 bytes)
@@ -109,9 +109,9 @@ The Indy development board use cartridge domain 1:
#define RDRAM_0_DEVICE_ID 0
#define RDRAM_1_DEVICE_ID 1
#define RDRAM_RESET_MODE 0
#define RDRAM_ACTIVE_MODE 1
#define RDRAM_STANDBY_MODE 2
#define RDRAM_RESET_MODE 0
#define RDRAM_ACTIVE_MODE 1
#define RDRAM_STANDBY_MODE 2
#define RDRAM_LENGTH (2*512*2048)
#define RDRAM_0_BASE_ADDRESS (RDRAM_0_DEVICE_ID*RDRAM_LENGTH)
@@ -125,7 +125,7 @@ The Indy development board use cartridge domain 1:
/*************************************************************************
* PIF Physical memory map (total size = 2 KB)
*
* Size Description Mode
* Size Description Mode
* 1FC007FF +-------+-----------------+-----+
* | 64 B | JoyChannel RAM | R/W |
* 1FC007C0 +-------+-----------------+-----+
@@ -177,7 +177,7 @@ The Indy development board use cartridge domain 1:
/* SP memory address (R/W): [11:0] DMEM/IMEM address; [12] 0=DMEM,1=IMEM */
#define SP_MEM_ADDR_REG (SP_BASE_REG+0x00) /* Master */
/* SP DRAM DMA address (R/W): [23:0] RDRAM address */
#define SP_DRAM_ADDR_REG (SP_BASE_REG+0x04) /* Slave */
@@ -212,31 +212,31 @@ The Indy development board use cartridge domain 1:
/*
* Values to clear/set bit in status reg (SP_STATUS_REG - write)
*/
#define SP_CLR_HALT 0x00001 /* Bit 0: clear halt */
#define SP_SET_HALT 0x00002 /* Bit 1: set halt */
#define SP_CLR_BROKE 0x00004 /* Bit 2: clear broke */
#define SP_CLR_INTR 0x00008 /* Bit 3: clear intr */
#define SP_SET_INTR 0x00010 /* Bit 4: set intr */
#define SP_CLR_SSTEP 0x00020 /* Bit 5: clear sstep */
#define SP_SET_SSTEP 0x00040 /* Bit 6: set sstep */
#define SP_CLR_INTR_BREAK 0x00080 /* Bit 7: clear intr on break */
#define SP_SET_INTR_BREAK 0x00100 /* Bit 8: set intr on break */
#define SP_CLR_SIG0 0x00200 /* Bit 9: clear signal 0 */
#define SP_SET_SIG0 0x00400 /* Bit 10: set signal 0 */
#define SP_CLR_SIG1 0x00800 /* Bit 11: clear signal 1 */
#define SP_SET_SIG1 0x01000 /* Bit 12: set signal 1 */
#define SP_CLR_SIG2 0x02000 /* Bit 13: clear signal 2 */
#define SP_SET_SIG2 0x04000 /* Bit 14: set signal 2 */
#define SP_CLR_SIG3 0x08000 /* Bit 15: clear signal 3 */
#define SP_SET_SIG3 0x10000 /* Bit 16: set signal 3 */
#define SP_CLR_SIG4 0x20000 /* Bit 17: clear signal 4 */
#define SP_SET_SIG4 0x40000 /* Bit 18: set signal 4 */
#define SP_CLR_SIG5 0x80000 /* Bit 19: clear signal 5 */
#define SP_SET_SIG5 0x100000 /* Bit 20: set signal 5 */
#define SP_CLR_SIG6 0x200000 /* Bit 21: clear signal 6 */
#define SP_SET_SIG6 0x400000 /* Bit 22: set signal 6 */
#define SP_CLR_SIG7 0x800000 /* Bit 23: clear signal 7 */
#define SP_SET_SIG7 0x1000000 /* Bit 24: set signal 7 */
#define SP_CLR_HALT 0x00001 /* Bit 0: clear halt */
#define SP_SET_HALT 0x00002 /* Bit 1: set halt */
#define SP_CLR_BROKE 0x00004 /* Bit 2: clear broke */
#define SP_CLR_INTR 0x00008 /* Bit 3: clear intr */
#define SP_SET_INTR 0x00010 /* Bit 4: set intr */
#define SP_CLR_SSTEP 0x00020 /* Bit 5: clear sstep */
#define SP_SET_SSTEP 0x00040 /* Bit 6: set sstep */
#define SP_CLR_INTR_BREAK 0x00080 /* Bit 7: clear intr on break */
#define SP_SET_INTR_BREAK 0x00100 /* Bit 8: set intr on break */
#define SP_CLR_SIG0 0x00200 /* Bit 9: clear signal 0 */
#define SP_SET_SIG0 0x00400 /* Bit 10: set signal 0 */
#define SP_CLR_SIG1 0x00800 /* Bit 11: clear signal 1 */
#define SP_SET_SIG1 0x01000 /* Bit 12: set signal 1 */
#define SP_CLR_SIG2 0x02000 /* Bit 13: clear signal 2 */
#define SP_SET_SIG2 0x04000 /* Bit 14: set signal 2 */
#define SP_CLR_SIG3 0x08000 /* Bit 15: clear signal 3 */
#define SP_SET_SIG3 0x10000 /* Bit 16: set signal 3 */
#define SP_CLR_SIG4 0x20000 /* Bit 17: clear signal 4 */
#define SP_SET_SIG4 0x40000 /* Bit 18: set signal 4 */
#define SP_CLR_SIG5 0x80000 /* Bit 19: clear signal 5 */
#define SP_SET_SIG5 0x100000 /* Bit 20: set signal 5 */
#define SP_CLR_SIG6 0x200000 /* Bit 21: clear signal 6 */
#define SP_SET_SIG6 0x400000 /* Bit 22: set signal 6 */
#define SP_CLR_SIG7 0x800000 /* Bit 23: clear signal 7 */
#define SP_SET_SIG7 0x1000000 /* Bit 24: set signal 7 */
/*
* Patterns to interpret status reg (SP_STATUS_REG - read)
@@ -253,28 +253,28 @@ The Indy development board use cartridge domain 1:
#define SP_STATUS_SIG2 0x200 /* Bit 9: signal 2 set */
#define SP_STATUS_SIG3 0x400 /* Bit 10: signal 3 set */
#define SP_STATUS_SIG4 0x800 /* Bit 11: signal 4 set */
#define SP_STATUS_SIG5 0x1000 /* Bit 12: signal 5 set */
#define SP_STATUS_SIG6 0x2000 /* Bit 13: signal 6 set */
#define SP_STATUS_SIG7 0x4000 /* Bit 14: signal 7 set */
#define SP_STATUS_SIG5 0x1000 /* Bit 12: signal 5 set */
#define SP_STATUS_SIG6 0x2000 /* Bit 13: signal 6 set */
#define SP_STATUS_SIG7 0x4000 /* Bit 14: signal 7 set */
/*
* Use of SIG bits
*/
#define SP_CLR_YIELD SP_CLR_SIG0
#define SP_SET_YIELD SP_SET_SIG0
#define SP_STATUS_YIELD SP_STATUS_SIG0
#define SP_CLR_YIELDED SP_CLR_SIG1
#define SP_SET_YIELDED SP_SET_SIG1
#define SP_STATUS_YIELDED SP_STATUS_SIG1
#define SP_CLR_TASKDONE SP_CLR_SIG2
#define SP_SET_TASKDONE SP_SET_SIG2
#define SP_STATUS_TASKDONE SP_STATUS_SIG2
#define SP_CLR_RSPSIGNAL SP_CLR_SIG3
#define SP_SET_RSPSIGNAL SP_SET_SIG3
#define SP_STATUS_RSPSIGNAL SP_STATUS_SIG3
#define SP_CLR_CPUSIGNAL SP_CLR_SIG4
#define SP_SET_CPUSIGNAL SP_SET_SIG4
#define SP_STATUS_CPUSIGNAL SP_STATUS_SIG4
#define SP_CLR_YIELD SP_CLR_SIG0 /* Bit 9 */
#define SP_SET_YIELD SP_SET_SIG0 /* Bit 10 */
#define SP_STATUS_YIELD SP_STATUS_SIG0 /* Bit 7 */
#define SP_CLR_YIELDED SP_CLR_SIG1 /* Bit 11 */
#define SP_SET_YIELDED SP_SET_SIG1 /* Bit 12 */
#define SP_STATUS_YIELDED SP_STATUS_SIG1 /* Bit 8 */
#define SP_CLR_TASKDONE SP_CLR_SIG2 /* Bit 13 */
#define SP_SET_TASKDONE SP_SET_SIG2 /* Bit 14 */
#define SP_STATUS_TASKDONE SP_STATUS_SIG2 /* Bit 9 */
#define SP_CLR_RSPSIGNAL SP_CLR_SIG3 /* Bit 15 */
#define SP_SET_RSPSIGNAL SP_SET_SIG3 /* Bit 16 */
#define SP_STATUS_RSPSIGNAL SP_STATUS_SIG3 /* Bit 10 */
#define SP_CLR_CPUSIGNAL SP_CLR_SIG4 /* Bit 17 */
#define SP_SET_CPUSIGNAL SP_SET_SIG4 /* Bit 18 */
#define SP_STATUS_CPUSIGNAL SP_STATUS_SIG4 /* Bit 11 */
/* SP IMEM BIST REG (R/W): [6:0] BIST status bits; see below for detail */
#define SP_IBIST_REG 0x04080004
@@ -308,13 +308,13 @@ The Indy development board use cartridge domain 1:
#define DPC_END_REG (DPC_BASE_REG+0x04)
/* DP CMD DMA end (R): [23:0] DMEM/RDRAM current address */
#define DPC_CURRENT_REG (DPC_BASE_REG+0x08)
#define DPC_CURRENT_REG (DPC_BASE_REG+0x08)
/* DP CMD status (R/W): [9:0] valid bits - see below for definitions */
#define DPC_STATUS_REG (DPC_BASE_REG+0x0C)
/* DP clock counter (R): [23:0] clock counter */
#define DPC_CLOCK_REG (DPC_BASE_REG+0x10)
#define DPC_CLOCK_REG (DPC_BASE_REG+0x10)
/* DP buffer busy counter (R): [23:0] clock counter */
#define DPC_BUFBUSY_REG (DPC_BASE_REG+0x14)
@@ -482,9 +482,9 @@ The Indy development board use cartridge domain 1:
/* VI status/control (R/W): [15-0] valid bits:
* [1:0] = type[1:0] (pixel size)
* 0: blank (no data, no sync)
* 1: reserved
* 2: 5/5/5/3 ("16" bit)
* 3: 8/8/8/8 (32 bit)
* 1: reserved
* 2: 5/5/5/3 ("16" bit)
* 3: 8/8/8/8 (32 bit)
* [2] = gamma_dither_enable (normally on, unless "special effect")
* [3] = gamma_enable (normally on, unless MPEG/JPEG)
* [4] = divot_enable (normally on if antialiased, unless decal lines)
@@ -508,11 +508,11 @@ The Indy development board use cartridge domain 1:
#define VI_DRAM_ADDR_REG VI_ORIGIN_REG
/* VI width (R/W): [11:0] frame buffer line width in pixels */
#define VI_WIDTH_REG (VI_BASE_REG+0x08)
#define VI_WIDTH_REG (VI_BASE_REG+0x08)
#define VI_H_WIDTH_REG VI_WIDTH_REG
/* VI vertical intr (R/W): [9:0] interrupt when current half-line = V_INTR */
#define VI_INTR_REG (VI_BASE_REG+0x0C)
#define VI_INTR_REG (VI_BASE_REG+0x0C)
#define VI_V_INTR_REG VI_INTR_REG
/*
@@ -520,9 +520,9 @@ The Indy development board use cartridge domain 1:
* line (the lsb of V_CURRENT is constant within a field, and in
* interlaced modes gives the field number - which is constant for non-
* interlaced modes)
* - Any write to this register will clear interrupt line
* - Any write to this register will clear interrupt line
*/
#define VI_CURRENT_REG (VI_BASE_REG+0x10)
#define VI_CURRENT_REG (VI_BASE_REG+0x10)
#define VI_V_CURRENT_LINE_REG VI_CURRENT_REG
/*
@@ -531,23 +531,23 @@ The Indy development board use cartridge domain 1:
* [19:16] vertical sync width in half lines,
* [29:20] start of color burst in pixels from h-sync
*/
#define VI_BURST_REG (VI_BASE_REG+0x14)
#define VI_BURST_REG (VI_BASE_REG+0x14)
#define VI_TIMING_REG VI_BURST_REG
/* VI vertical sync (R/W): [9:0] number of half-lines per field */
#define VI_V_SYNC_REG (VI_BASE_REG+0x18)
#define VI_V_SYNC_REG (VI_BASE_REG+0x18)
/* VI horizontal sync (R/W): [11: 0] total duration of a line in 1/4 pixel
* [20:16] a 5-bit leap pattern used for PAL only
* (h_sync_period)
*/
#define VI_H_SYNC_REG (VI_BASE_REG+0x1C)
#define VI_H_SYNC_REG (VI_BASE_REG+0x1C)
/*
* VI horizontal sync leap (R/W): [11: 0] identical to h_sync_period
* [27:16] identical to h_sync_period
*/
#define VI_LEAP_REG (VI_BASE_REG+0x20)
#define VI_LEAP_REG (VI_BASE_REG+0x20)
#define VI_H_SYNC_LEAP_REG VI_LEAP_REG
/*
@@ -568,17 +568,17 @@ The Indy development board use cartridge domain 1:
* VI vertical burst (R/W): [ 9: 0] end of color burst enable in half-lines
* : [25:16] start of color burst enable in half-lines
*/
#define VI_V_BURST_REG (VI_BASE_REG+0x2C)
#define VI_V_BURST_REG (VI_BASE_REG+0x2C)
/* VI x-scale (R/W): [11: 0] 1/horizontal scale up factor (2.10 format)
* [27:16] horizontal subpixel offset (2.10 format)
*/
#define VI_X_SCALE_REG (VI_BASE_REG+0x30)
#define VI_X_SCALE_REG (VI_BASE_REG+0x30)
/* VI y-scale (R/W): [11: 0] 1/vertical scale up factor (2.10 format)
* [27:16] vertical subpixel offset (2.10 format)
*/
#define VI_Y_SCALE_REG (VI_BASE_REG+0x34)
#define VI_Y_SCALE_REG (VI_BASE_REG+0x34)
/*
* Patterns to interpret VI_CONTROL_REG
+1
View File
@@ -32,5 +32,6 @@
#include <PR/libultra.h>
#include <PR/pfs.h>
#include <PR/rcp.h>
#include <PR/os.h>
#endif
@@ -1,3 +1,12 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800D2560 */
.include "macros.inc"
.set noat # allow manual use of $at
.set noreorder # dont insert nops after branches
.set gp=64 # 64-bit instructions are used
glabel __osDisableInt
/* 0D3160 800D2560 40086000 */ mfc0 $t0, $12
/* 0D3164 800D2564 2401FFFE */ li $at, -2
@@ -7,4 +16,3 @@ glabel __osDisableInt
/* 0D3174 800D2574 00000000 */ nop
/* 0D3178 800D2578 03E00008 */ jr $ra
/* 0D317C 800D257C 00000000 */ nop
@@ -1,3 +1,12 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800D2580 */
.include "macros.inc"
.set noat # allow manual use of $at
.set noreorder # dont insert nops after branches
.set gp=64 # 64-bit instructions are used
glabel __osRestoreInt
/* 0D3180 800D2580 40086000 */ mfc0 $t0, $12
/* 0D3184 800D2584 01044025 */ or $t0, $t0, $a0
@@ -7,4 +16,4 @@ glabel __osRestoreInt
/* 0D3194 800D2594 03E00008 */ jr $ra
/* 0D3198 800D2598 00000000 */ nop
/* 0D319C 800D259C 00000000 */ nop
/* 0D319C 800D259C 00000000 */ nop
+15
View File
@@ -0,0 +1,15 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800D7460 */
.include "macros.inc"
.set noat # allow manual use of $at
.set noreorder # dont insert nops after branches
.set gp=64 # 64-bit instructions are used
glabel __osSetCompare
/* 0D8060 800D7460 40845800 */ mtc0 $a0, $11
/* 0D8064 800D7464 03E00008 */ jr $ra
/* 0D8068 800D7468 00000000 */ nop
/* 0D806C 800D746C 00000000 */ nop
@@ -1,3 +1,12 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800D04E0 */
.include "macros.inc"
.set noat # allow manual use of $at
.set noreorder # dont insert nops after branches
.set gp=64 # 64-bit instructions are used
glabel bzero
/* 0D10E0 800D04E0 28A1000C */ slti $at, $a1, 0xc
/* 0D10E4 800D04E4 1420001D */ bnez $at, .L800D055C
+2 -2
View File
@@ -87,8 +87,8 @@ glabel __osDispatchThread
/* 0D4174 800D3574 275A94D0 */ addiu $k0, %lo(D_800E94D0) # addiu $k0, $k0, -0x6b30
/* 0D4178 800D3578 037AD821 */ addu $k1, $k1, $k0
/* 0D417C 800D357C 977B0000 */ lhu $k1, ($k1)
/* 0D4180 800D3580 3C1AA430 */ lui $k0, %hi(D_A430000C) # $k0, 0xa430
/* 0D4184 800D3584 275A000C */ addiu $k0, %lo(D_A430000C) # addiu $k0, $k0, 0xc
/* 0D4180 800D3580 3C1AA430 */ lui $k0, %hi(MI_INTR_MASK_REG) # $k0, 0xa430
/* 0D4184 800D3584 275A000C */ addiu $k0, %lo(MI_INTR_MASK_REG) # addiu $k0, $k0, 0xc
/* 0D4188 800D3588 AF5B0000 */ sw $k1, ($k0)
/* 0D418C 800D358C 00000000 */ nop
/* 0D4190 800D3590 00000000 */ nop
+2 -2
View File
@@ -45,8 +45,8 @@ glabel __osEnqueueAndYield
/* 0D3F74 800D3374 0369D825 */ or $k1, $k1, $t1
/* 0D3F78 800D3378 ACBB0118 */ sw $k1, 0x118($a1)
.L800D337C:
/* 0D3F7C 800D337C 3C1BA430 */ lui $k1, %hi(D_A430000C) # $k1, 0xa430
/* 0D3F80 800D3380 8F7B000C */ lw $k1, %lo(D_A430000C)($k1)
/* 0D3F7C 800D337C 3C1BA430 */ lui $k1, %hi(MI_INTR_MASK_REG) # $k1, 0xa430
/* 0D3F80 800D3380 8F7B000C */ lw $k1, %lo(MI_INTR_MASK_REG)($k1)
/* 0D3F84 800D3384 1360000B */ beqz $k1, .L800D33B4
/* 0D3F88 800D3388 00000000 */ nop
/* 0D3F8C 800D338C 3C1A800E */ lui $k0, %hi(__OSGlobalIntMask) # $k0, 0x800e
+30 -30
View File
@@ -1,6 +1,6 @@
.section .rodata
glabel D_800E9670
glabel __osIntOffTable
.word 0x00141818
.word 0x1C1C1C1C
.word 0x20202020
@@ -10,7 +10,7 @@ glabel D_800E9670
.word 0x10101010
.word 0x10101010
glabel D_800E9690
glabel __osIntTable
.word .L800D3168
.word .L800D3130
.word .L800D3110
@@ -24,8 +24,8 @@ glabel D_800E9690
.section .text
glabel __osException
/* 0D38C0 800D2CC0 3C1A8013 */ lui $k0, %hi(D_8012D240) # $k0, 0x8013
/* 0D38C4 800D2CC4 275AD240 */ addiu $k0, %lo(D_8012D240) # addiu $k0, $k0, -0x2dc0
/* 0D38C0 800D2CC0 3C1A8013 */ lui $k0, %hi(gInterruptedThread) # $k0, 0x8013
/* 0D38C4 800D2CC4 275AD240 */ addiu $k0, %lo(gInterruptedThread) # addiu $k0, $k0, -0x2dc0
/* 0D38C8 800D2CC8 FF410020 */ sd $at, 0x20($k0)
/* 0D38CC 800D2CCC 401B6000 */ mfc0 $k1, $12
/* 0D38D0 800D2CD0 AF5B0118 */ sw $k1, 0x118($k0)
@@ -95,8 +95,8 @@ glabel __osException
/* 0D39D0 800D2DD0 0369D825 */ or $k1, $k1, $t1
/* 0D39D4 800D2DD4 AF5B0118 */ sw $k1, 0x118($k0)
.L800D2DD8:
/* 0D39D8 800D2DD8 3C09A430 */ lui $t1, %hi(D_A430000C) # $t1, 0xa430
/* 0D39DC 800D2DDC 8D29000C */ lw $t1, %lo(D_A430000C)($t1)
/* 0D39D8 800D2DD8 3C09A430 */ lui $t1, %hi(MI_INTR_MASK_REG) # $t1, 0xa430
/* 0D39DC 800D2DDC 8D29000C */ lw $t1, %lo(MI_INTR_MASK_REG)($t1)
/* 0D39E0 800D2DE0 1120000B */ beqz $t1, .L800D2E10
/* 0D39E4 800D2DE4 00000000 */ nop
/* 0D39E8 800D2DE8 3C08800E */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x800e
@@ -159,12 +159,12 @@ glabel __osException
/* 0D3AC0 800D2EC0 00095202 */ srl $t2, $t1, 8
/* 0D3AC4 800D2EC4 214A0010 */ addi $t2, $t2, 0x10
.L800D2EC8:
/* 0D3AC8 800D2EC8 3C01800F */ lui $at, %hi(D_800E9670) # $at, 0x800f
/* 0D3AC8 800D2EC8 3C01800F */ lui $at, %hi(__osIntOffTable) # $at, 0x800f
/* 0D3ACC 800D2ECC 002A0821 */ addu $at, $at, $t2
/* 0D3AD0 800D2ED0 902A9670 */ lbu $t2, %lo(D_800E9670)($at)
/* 0D3AD4 800D2ED4 3C01800F */ lui $at, %hi(D_800E9690) # $at, 0x800f
/* 0D3AD0 800D2ED0 902A9670 */ lbu $t2, %lo(__osIntOffTable)($at)
/* 0D3AD4 800D2ED4 3C01800F */ lui $at, %hi(__osIntTable) # $at, 0x800f
/* 0D3AD8 800D2ED8 002A0821 */ addu $at, $at, $t2
/* 0D3ADC 800D2EDC 8C2A9690 */ lw $t2, %lo(D_800E9690)($at)
/* 0D3ADC 800D2EDC 8C2A9690 */ lw $t2, %lo(__osIntTable)($at)
/* 0D3AE0 800D2EE0 01400008 */ jr $t2
/* 0D3AE4 800D2EE4 00000000 */ nop
.L800D2EE8:
@@ -188,11 +188,11 @@ glabel __osException
/* 0D3B20 800D2F20 2401F7FF */ li $at, -2049
/* 0D3B24 800D2F24 02018024 */ and $s0, $s0, $at
/* 0D3B28 800D2F28 240A0004 */ li $t2, 4
/* 0D3B2C 800D2F2C 3C01800E */ lui $at, %hi(D_800E48A0) # $at, 0x800e
/* 0D3B2C 800D2F2C 3C01800E */ lui $at, %hi(__osHwIntTable) # $at, 0x800e
/* 0D3B30 800D2F30 002A0821 */ addu $at, $at, $t2
/* 0D3B34 800D2F34 8C2A48A0 */ lw $t2, %lo(D_800E48A0)($at)
/* 0D3B38 800D2F38 3C1D8013 */ lui $sp, %hi(D_8012AAE0) # $sp, 0x8013
/* 0D3B3C 800D2F3C 27BDAAE0 */ addiu $sp, %lo(D_8012AAE0) # addiu $sp, $sp, -0x5520
/* 0D3B34 800D2F34 8C2A48A0 */ lw $t2, %lo(__osHwIntTable)($at)
/* 0D3B38 800D2F38 3C1D8013 */ lui $sp, %hi(leoDiskStack) # $sp, 0x8013
/* 0D3B3C 800D2F3C 27BDAAE0 */ addiu $sp, %lo(leoDiskStack) # addiu $sp, $sp, -0x5520
/* 0D3B40 800D2F40 24040010 */ li $a0, 16
/* 0D3B44 800D2F44 11400007 */ beqz $t2, .L800D2F64
/* 0D3B48 800D2F48 27BD0FF0 */ addiu $sp, $sp, 0xff0
@@ -211,21 +211,21 @@ glabel __osException
/* 0D3B74 800D2F74 3C08800E */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x800e
/* 0D3B78 800D2F78 250838AC */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, 0x38ac
/* 0D3B7C 800D2F7C 8D080000 */ lw $t0, ($t0)
/* 0D3B80 800D2F80 3C11A430 */ lui $s1, %hi(D_A4300008) # $s1, 0xa430
/* 0D3B84 800D2F84 8E310008 */ lw $s1, %lo(D_A4300008)($s1)
/* 0D3B80 800D2F80 3C11A430 */ lui $s1, %hi(MI_INTR_REG) # $s1, 0xa430
/* 0D3B84 800D2F84 8E310008 */ lw $s1, %lo(MI_INTR_REG)($s1)
/* 0D3B88 800D2F88 00084402 */ srl $t0, $t0, 0x10
/* 0D3B8C 800D2F8C 02288824 */ and $s1, $s1, $t0
/* 0D3B90 800D2F90 32290001 */ andi $t1, $s1, 1
/* 0D3B94 800D2F94 11200013 */ beqz $t1, .L800D2FE4
/* 0D3B98 800D2F98 00000000 */ nop
/* 0D3B9C 800D2F9C 3C0CA404 */ lui $t4, %hi(D_A4040010) # $t4, 0xa404
/* 0D3BA0 800D2FA0 8D8C0010 */ lw $t4, %lo(D_A4040010)($t4)
/* 0D3B9C 800D2F9C 3C0CA404 */ lui $t4, %hi(SP_STATUS_REG) # $t4, 0xa404
/* 0D3BA0 800D2FA0 8D8C0010 */ lw $t4, %lo(SP_STATUS_REG)($t4)
/* 0D3BA4 800D2FA4 24090008 */ li $t1, 8
/* 0D3BA8 800D2FA8 3C01A404 */ lui $at, %hi(D_A4040010) # $at, 0xa404
/* 0D3BA8 800D2FA8 3C01A404 */ lui $at, %hi(SP_STATUS_REG) # $at, 0xa404
/* 0D3BAC 800D2FAC 318C0300 */ andi $t4, $t4, 0x300
/* 0D3BB0 800D2FB0 3231003E */ andi $s1, $s1, 0x3e
/* 0D3BB4 800D2FB4 11800007 */ beqz $t4, .L800D2FD4
/* 0D3BB8 800D2FB8 AC290010 */ sw $t1, %lo(D_A4040010)($at)
/* 0D3BB8 800D2FB8 AC290010 */ sw $t1, %lo(SP_STATUS_REG)($at)
/* 0D3BBC 800D2FBC 0C034C79 */ jal send_mesg
/* 0D3BC0 800D2FC0 24040020 */ li $a0, 32
/* 0D3BC4 800D2FC4 12200038 */ beqz $s1, .L800D30A8
@@ -240,9 +240,9 @@ glabel __osException
.L800D2FE4:
/* 0D3BE4 800D2FE4 32290008 */ andi $t1, $s1, 8
/* 0D3BE8 800D2FE8 11200007 */ beqz $t1, .L800D3008
/* 0D3BEC 800D2FEC 3C01A440 */ lui $at, %hi(D_A4400010) # $at, 0xa440
/* 0D3BEC 800D2FEC 3C01A440 */ lui $at, %hi(VI_CURRENT_REG) # $at, 0xa440
/* 0D3BF0 800D2FF0 32310037 */ andi $s1, $s1, 0x37
/* 0D3BF4 800D2FF4 AC200010 */ sw $zero, %lo(D_A4400010)($at)
/* 0D3BF4 800D2FF4 AC200010 */ sw $zero, %lo(VI_CURRENT_REG)($at)
/* 0D3BF8 800D2FF8 0C034C79 */ jal send_mesg
/* 0D3BFC 800D2FFC 24040038 */ li $a0, 56
/* 0D3C00 800D3000 12200029 */ beqz $s1, .L800D30A8
@@ -252,9 +252,9 @@ glabel __osException
/* 0D3C0C 800D300C 11200009 */ beqz $t1, .L800D3034
/* 0D3C10 800D3010 00000000 */ nop
/* 0D3C14 800D3014 24090001 */ li $t1, 1
/* 0D3C18 800D3018 3C01A450 */ lui $at, %hi(D_A450000C) # $at, 0xa450
/* 0D3C18 800D3018 3C01A450 */ lui $at, %hi(AI_STATUS_REG) # $at, 0xa450
/* 0D3C1C 800D301C 3231003B */ andi $s1, $s1, 0x3b
/* 0D3C20 800D3020 AC29000C */ sw $t1, %lo(D_A450000C)($at)
/* 0D3C20 800D3020 AC29000C */ sw $t1, %lo(AI_STATUS_REG)($at)
/* 0D3C24 800D3024 0C034C79 */ jal send_mesg
/* 0D3C28 800D3028 24040030 */ li $a0, 48
/* 0D3C2C 800D302C 1220001E */ beqz $s1, .L800D30A8
@@ -262,9 +262,9 @@ glabel __osException
.L800D3034:
/* 0D3C34 800D3034 32290002 */ andi $t1, $s1, 2
/* 0D3C38 800D3038 11200007 */ beqz $t1, .L800D3058
/* 0D3C3C 800D303C 3C01A480 */ lui $at, %hi(D_A4800018) # $at, 0xa480
/* 0D3C3C 800D303C 3C01A480 */ lui $at, %hi(SI_STATUS_REG) # $at, 0xa480
/* 0D3C40 800D3040 3231003D */ andi $s1, $s1, 0x3d
/* 0D3C44 800D3044 AC200018 */ sw $zero, %lo(D_A4800018)($at)
/* 0D3C44 800D3044 AC200018 */ sw $zero, %lo(SI_STATUS_REG)($at)
/* 0D3C48 800D3048 0C034C79 */ jal send_mesg
/* 0D3C4C 800D304C 24040028 */ li $a0, 40
/* 0D3C50 800D3050 12200015 */ beqz $s1, .L800D30A8
@@ -274,9 +274,9 @@ glabel __osException
/* 0D3C5C 800D305C 11200009 */ beqz $t1, .L800D3084
/* 0D3C60 800D3060 00000000 */ nop
/* 0D3C64 800D3064 24090002 */ li $t1, 2
/* 0D3C68 800D3068 3C01A460 */ lui $at, %hi(D_A4600010) # $at, 0xa460
/* 0D3C68 800D3068 3C01A460 */ lui $at, %hi(PI_STATUS_REG) # $at, 0xa460
/* 0D3C6C 800D306C 3231002F */ andi $s1, $s1, 0x2f
/* 0D3C70 800D3070 AC290010 */ sw $t1, %lo(D_A4600010)($at)
/* 0D3C70 800D3070 AC290010 */ sw $t1, %lo(PI_STATUS_REG)($at)
/* 0D3C74 800D3074 0C034C79 */ jal send_mesg
/* 0D3C78 800D3078 24040040 */ li $a0, 64
/* 0D3C7C 800D307C 1220000A */ beqz $s1, .L800D30A8
@@ -369,8 +369,8 @@ glabel __osException
/* 0D3DB0 800D31B0 AD3A0000 */ sw $k0, ($t1)
.L800D31B4:
/* 0D3DB4 800D31B4 3C01800E */ lui $at, %hi(D_800E4894) # $at, 0x800e
/* 0D3DB8 800D31B8 AC3A4894 */ sw $k0, %lo(D_800E4894)($at)
/* 0D3DB4 800D31B4 3C01800E */ lui $at, %hi(__osFaultedThread) # $at, 0x800e
/* 0D3DB8 800D31B8 AC3A4894 */ sw $k0, %lo(__osFaultedThread)($at)
/* 0D3DBC 800D31BC 24090001 */ li $t1, 1
/* 0D3DC0 800D31C0 A7490010 */ sh $t1, 0x10($k0)
/* 0D3DC4 800D31C4 24090002 */ li $t1, 2
+4 -4
View File
@@ -17,8 +17,8 @@ glabel __scHandleRSP
/* 07A76C 80079B6C 00808025 */ move $s0, $a0
/* 07A770 80079B70 0C031E34 */ jal osGetCount
/* 07A774 80079B74 AFA50034 */ sw $a1, 0x34($sp)
/* 07A778 80079B78 3C038012 */ lui $v1, %hi(D_80126124) # $v1, 0x8012
/* 07A77C 80079B7C 24636124 */ addiu $v1, %lo(D_80126124) # addiu $v1, $v1, 0x6124
/* 07A778 80079B78 3C038012 */ lui $v1, %hi(gRSPAudTaskCount) # $v1, 0x8012
/* 07A77C 80079B7C 24636124 */ addiu $v1, %lo(gRSPAudTaskCount) # addiu $v1, $v1, 0x6124
/* 07A780 80079B80 AC620000 */ sw $v0, ($v1)
/* 07A784 80079B84 3C188012 */ lui $t8, %hi(D_80126120) # $t8, 0x8012
/* 07A788 80079B88 8F186120 */ lw $t8, %lo(D_80126120)($t8)
@@ -46,7 +46,7 @@ glabel __scHandleRSP
/* 07A7DC 80079BDC C4EA0000 */ lwc1 $f10, ($a3)
/* 07A7E0 80079BE0 C4C80000 */ lwc1 $f8, ($a2)
/* 07A7E4 80079BE4 46128103 */ div.s $f4, $f16, $f18
/* 07A7E8 80079BE8 3C02800E */ lui $v0, %hi(D_800DE750) # $v0, 0x800e
/* 07A7E8 80079BE8 3C02800E */ lui $v0, %hi(gRetraceCounter32) # $v0, 0x800e
/* 07A7EC 80079BEC E4840000 */ swc1 $f4, ($a0)
/* 07A7F0 80079BF0 C4800000 */ lwc1 $f0, ($a0)
/* 07A7F4 80079BF4 00000000 */ nop
@@ -56,7 +56,7 @@ glabel __scHandleRSP
/* 07A804 80079C04 E4C60000 */ swc1 $f6, ($a2)
/* 07A808 80079C08 E4E00000 */ swc1 $f0, ($a3)
.L80079C0C:
/* 07A80C 80079C0C 8C42E750 */ lw $v0, %lo(D_800DE750)($v0)
/* 07A80C 80079C0C 8C42E750 */ lw $v0, %lo(gRetraceCounter32)($v0)
/* 07A810 80079C10 240103E8 */ li $at, 1000
/* 07A814 80079C14 0041001A */ div $zero, $v0, $at
/* 07A818 80079C18 24010001 */ li $at, 1
-119
View File
@@ -1,119 +0,0 @@
glabel __scMain
/* 07A1AC 800795AC 27BDFF98 */ addiu $sp, $sp, -0x68
/* 07A1B0 800795B0 AFBE0038 */ sw $fp, 0x38($sp)
/* 07A1B4 800795B4 AFB70034 */ sw $s7, 0x34($sp)
/* 07A1B8 800795B8 AFB60030 */ sw $s6, 0x30($sp)
/* 07A1BC 800795BC AFB5002C */ sw $s5, 0x2c($sp)
/* 07A1C0 800795C0 AFB40028 */ sw $s4, 0x28($sp)
/* 07A1C4 800795C4 AFB30024 */ sw $s3, 0x24($sp)
/* 07A1C8 800795C8 AFB20020 */ sw $s2, 0x20($sp)
/* 07A1CC 800795CC 00809025 */ move $s2, $a0
/* 07A1D0 800795D0 AFBF003C */ sw $ra, 0x3c($sp)
/* 07A1D4 800795D4 AFB1001C */ sw $s1, 0x1c($sp)
/* 07A1D8 800795D8 AFB00018 */ sw $s0, 0x18($sp)
/* 07A1DC 800795DC AFA00064 */ sw $zero, 0x64($sp)
/* 07A1E0 800795E0 AFA00054 */ sw $zero, 0x54($sp)
/* 07A1E4 800795E4 AFA00050 */ sw $zero, 0x50($sp)
/* 07A1E8 800795E8 24930040 */ addiu $s3, $a0, 0x40
/* 07A1EC 800795EC 27B40064 */ addiu $s4, $sp, 0x64
/* 07A1F0 800795F0 24150063 */ li $s5, 99
/* 07A1F4 800795F4 2416029A */ li $s6, 666
/* 07A1F8 800795F8 2417029B */ li $s7, 667
/* 07A1FC 800795FC 241E029C */ li $fp, 668
/* 07A200 80079600 02602025 */ move $a0, $s3
.L80079604:
/* 07A204 80079604 02802825 */ move $a1, $s4
/* 07A208 80079608 0C0322EC */ jal osRecvMesg
/* 07A20C 8007960C 24060001 */ li $a2, 1
/* 07A210 80079610 8FAE0064 */ lw $t6, 0x64($sp)
/* 07A214 80079614 00000000 */ nop
/* 07A218 80079618 11D50017 */ beq $t6, $s5, .L80079678
/* 07A21C 8007961C 00000000 */ nop
/* 07A220 80079620 11D60009 */ beq $t6, $s6, .L80079648
/* 07A224 80079624 00000000 */ nop
/* 07A228 80079628 11D7000B */ beq $t6, $s7, .L80079658
/* 07A22C 8007962C 00000000 */ nop
/* 07A230 80079630 11DE000D */ beq $t6, $fp, .L80079668
/* 07A234 80079634 2401029D */ li $at, 669
/* 07A238 80079638 11C10013 */ beq $t6, $at, .L80079688
/* 07A23C 8007963C 00000000 */ nop
/* 07A240 80079640 10000020 */ b .L800796C4
/* 07A244 80079644 8FA50064 */ lw $a1, 0x64($sp)
.L80079648:
/* 07A248 80079648 0C01E606 */ jal func_80079818
/* 07A24C 8007964C 02402025 */ move $a0, $s2
/* 07A250 80079650 1000FFEC */ b .L80079604
/* 07A254 80079654 02602025 */ move $a0, $s3
.L80079658:
/* 07A258 80079658 0C01E6D1 */ jal __scHandleRSP
/* 07A25C 8007965C 02402025 */ move $a0, $s2
/* 07A260 80079660 1000FFE8 */ b .L80079604
/* 07A264 80079664 02602025 */ move $a0, $s3
.L80079668:
/* 07A268 80079668 0C01E757 */ jal __scHandleRDP
/* 07A26C 8007966C 02402025 */ move $a0, $s2
/* 07A270 80079670 1000FFE4 */ b .L80079604
/* 07A274 80079674 02602025 */ move $a0, $s3
.L80079678:
/* 07A278 80079678 0C01E5D8 */ jal func_80079760
/* 07A27C 8007967C 02402025 */ move $a0, $s2
/* 07A280 80079680 1000FFE0 */ b .L80079604
/* 07A284 80079684 02602025 */ move $a0, $s3
.L80079688:
/* 07A288 80079688 8E500260 */ lw $s0, 0x260($s2)
/* 07A28C 8007968C 26510020 */ addiu $s1, $s2, 0x20
/* 07A290 80079690 1200FFDC */ beqz $s0, .L80079604
/* 07A294 80079694 02602025 */ move $a0, $s3
.L80079698:
/* 07A298 80079698 8E040008 */ lw $a0, 8($s0)
/* 07A29C 8007969C 02202825 */ move $a1, $s1
/* 07A2A0 800796A0 0C03238C */ jal osSendMesg
/* 07A2A4 800796A4 00003025 */ move $a2, $zero
/* 07A2A8 800796A8 8E100004 */ lw $s0, 4($s0)
/* 07A2AC 800796AC 00000000 */ nop
/* 07A2B0 800796B0 1600FFF9 */ bnez $s0, .L80079698
/* 07A2B4 800796B4 00000000 */ nop
/* 07A2B8 800796B8 1000FFD2 */ b .L80079604
/* 07A2BC 800796BC 02602025 */ move $a0, $s3
/* 07A2C0 800796C0 8FA50064 */ lw $a1, 0x64($sp)
.L800796C4:
/* 07A2C4 800796C4 0C01E7D0 */ jal __scAppendList
/* 07A2C8 800796C8 02402025 */ move $a0, $s2
/* 07A2CC 800796CC 8E4F0274 */ lw $t7, 0x274($s2)
/* 07A2D0 800796D0 8E480278 */ lw $t0, 0x278($s2)
/* 07A2D4 800796D4 2DF80001 */ sltiu $t8, $t7, 1
/* 07A2D8 800796D8 0018C840 */ sll $t9, $t8, 1
/* 07A2DC 800796DC 2D090001 */ sltiu $t1, $t0, 1
/* 07A2E0 800796E0 03298025 */ or $s0, $t9, $t1
/* 07A2E4 800796E4 02003825 */ move $a3, $s0
/* 07A2E8 800796E8 02402025 */ move $a0, $s2
/* 07A2EC 800796EC 27A50054 */ addiu $a1, $sp, 0x54
/* 07A2F0 800796F0 0C01E835 */ jal __scSchedule
/* 07A2F4 800796F4 27A60050 */ addiu $a2, $sp, 0x50
/* 07A2F8 800796F8 1050FFC2 */ beq $v0, $s0, .L80079604
/* 07A2FC 800796FC 02602025 */ move $a0, $s3
/* 07A300 80079700 8FA50054 */ lw $a1, 0x54($sp)
/* 07A304 80079704 8FA60050 */ lw $a2, 0x50($sp)
/* 07A308 80079708 0C01E7EA */ jal __scExec
/* 07A30C 8007970C 02402025 */ move $a0, $s2
/* 07A310 80079710 1000FFBC */ b .L80079604
/* 07A314 80079714 02602025 */ move $a0, $s3
/* 07A318 80079718 00000000 */ nop
/* 07A31C 8007971C 00000000 */ nop
/* 07A320 80079720 00000000 */ nop
/* 07A324 80079724 00000000 */ nop
/* 07A328 80079728 00000000 */ nop
/* 07A32C 8007972C 00000000 */ nop
/* 07A330 80079730 8FBF003C */ lw $ra, 0x3c($sp)
/* 07A334 80079734 8FB00018 */ lw $s0, 0x18($sp)
/* 07A338 80079738 8FB1001C */ lw $s1, 0x1c($sp)
/* 07A33C 8007973C 8FB20020 */ lw $s2, 0x20($sp)
/* 07A340 80079740 8FB30024 */ lw $s3, 0x24($sp)
/* 07A344 80079744 8FB40028 */ lw $s4, 0x28($sp)
/* 07A348 80079748 8FB5002C */ lw $s5, 0x2c($sp)
/* 07A34C 8007974C 8FB60030 */ lw $s6, 0x30($sp)
/* 07A350 80079750 8FB70034 */ lw $s7, 0x34($sp)
/* 07A354 80079754 8FBE0038 */ lw $fp, 0x38($sp)
/* 07A358 80079758 03E00008 */ jr $ra
/* 07A35C 8007975C 27BD0068 */ addiu $sp, $sp, 0x68

Some files were not shown because too many files have changed in this diff Show More