mirror of
https://github.com/zeldaret/mm.git
synced 2026-08-10 11:13:38 -04:00
review
This commit is contained in:
@@ -142,8 +142,6 @@ typedef struct {
|
||||
/* 0x7 */ s8 stick_y;
|
||||
} __OSContReadFormat;
|
||||
|
||||
|
||||
// Original name: __OSContRequesFormat
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 align;
|
||||
/* 0x01 */ u8 txsize;
|
||||
|
||||
+1
-1
@@ -133,7 +133,7 @@ void* osViGetCurrentFramebuffer(void);
|
||||
void* osViGetNextFramebuffer(void);
|
||||
void osViSetXScale(f32 value);
|
||||
void osViSetYScale(f32 value);
|
||||
void osViExtendVStart(u32 a0);
|
||||
void osViExtendVStart(u32 value);
|
||||
void osViSetSpecialFeatures(u32 func);
|
||||
void osViSetMode(OSViMode* modep);
|
||||
void osViSetEvent(OSMesgQueue* mq, OSMesg m, u32 retraceCount);
|
||||
|
||||
+35
-37
@@ -5,7 +5,6 @@
|
||||
#include "os_pi.h"
|
||||
#include "libc/stdint.h"
|
||||
|
||||
|
||||
#define LEO_BASE_REG 0x05000000
|
||||
|
||||
#define LEO_CMD (LEO_BASE_REG + 0x508)
|
||||
@@ -17,25 +16,25 @@
|
||||
#define LEO_SEQ_CTL (LEO_BASE_REG + 0x518)
|
||||
#define LEO_SEQ_STATUS (LEO_BASE_REG + 0x518)
|
||||
|
||||
#define LEO_C2_BUFF (LEO_BASE_REG + 0x000) //C2 Sector Buffer
|
||||
#define LEO_SECTOR_BUFF (LEO_BASE_REG + 0x400) //Data Sector Buffer
|
||||
#define LEO_DATA (LEO_BASE_REG + 0x500) //Data
|
||||
#define LEO_MISC_REG (LEO_BASE_REG + 0x504) //Misc Register
|
||||
#define LEO_CUR_TK (LEO_BASE_REG + 0x50C) //Current Track
|
||||
#define LEO_ERR_SECTOR (LEO_BASE_REG + 0x514) //Sector Error Status
|
||||
#define LEO_CUR_SECTOR (LEO_BASE_REG + 0x51C) //Current Sector
|
||||
#define LEO_HARD_RESET (LEO_BASE_REG + 0x520) //Hard Reset
|
||||
#define LEO_C1_S0 (LEO_BASE_REG + 0x524) //C1
|
||||
#define LEO_HOST_SECBYTE (LEO_BASE_REG + 0x528) //Sector Size (in bytes)
|
||||
#define LEO_C1_S2 (LEO_BASE_REG + 0x52C) //C1
|
||||
#define LEO_SEC_BYTE (LEO_BASE_REG + 0x530) //Sectors per Block, Full Size
|
||||
#define LEO_C1_S4 (LEO_BASE_REG + 0x534) //C1
|
||||
#define LEO_C1_S6 (LEO_BASE_REG + 0x538) //C1
|
||||
#define LEO_CUR_ADDR (LEO_BASE_REG + 0x53C) //Current Address?
|
||||
#define LEO_ID_REG (LEO_BASE_REG + 0x540) //ID
|
||||
#define LEO_TEST_REG (LEO_BASE_REG + 0x544) //Test Read
|
||||
#define LEO_TEST_PIN_SEL (LEO_BASE_REG + 0x548) //Test Write
|
||||
#define LEO_RAM_ADDR (LEO_BASE_REG + 0x580) //Microsequencer RAM
|
||||
#define LEO_C2_BUFF (LEO_BASE_REG + 0x000) // C2 Sector Buffer
|
||||
#define LEO_SECTOR_BUFF (LEO_BASE_REG + 0x400) // Data Sector Buffer
|
||||
#define LEO_DATA (LEO_BASE_REG + 0x500) // Data
|
||||
#define LEO_MISC_REG (LEO_BASE_REG + 0x504) // Misc Register
|
||||
#define LEO_CUR_TK (LEO_BASE_REG + 0x50C) // Current Track
|
||||
#define LEO_ERR_SECTOR (LEO_BASE_REG + 0x514) // Sector Error Status
|
||||
#define LEO_CUR_SECTOR (LEO_BASE_REG + 0x51C) // Current Sector
|
||||
#define LEO_HARD_RESET (LEO_BASE_REG + 0x520) // Hard Reset
|
||||
#define LEO_C1_S0 (LEO_BASE_REG + 0x524) // C1
|
||||
#define LEO_HOST_SECBYTE (LEO_BASE_REG + 0x528) // Sector Size (in bytes)
|
||||
#define LEO_C1_S2 (LEO_BASE_REG + 0x52C) // C1
|
||||
#define LEO_SEC_BYTE (LEO_BASE_REG + 0x530) // Sectors per Block, Full Size
|
||||
#define LEO_C1_S4 (LEO_BASE_REG + 0x534) // C1
|
||||
#define LEO_C1_S6 (LEO_BASE_REG + 0x538) // C1
|
||||
#define LEO_CUR_ADDR (LEO_BASE_REG + 0x53C) // Current Address?
|
||||
#define LEO_ID_REG (LEO_BASE_REG + 0x540) // ID
|
||||
#define LEO_TEST_REG (LEO_BASE_REG + 0x544) // Test Read
|
||||
#define LEO_TEST_PIN_SEL (LEO_BASE_REG + 0x548) // Test Write
|
||||
#define LEO_RAM_ADDR (LEO_BASE_REG + 0x580) // Microsequencer RAM
|
||||
|
||||
#define LEO_STATUS_PRESENCE_MASK 0xFFFF
|
||||
|
||||
@@ -60,29 +59,28 @@
|
||||
|
||||
#define LEO_CUR_TK_INDEX_LOCK 0x60000000
|
||||
|
||||
#define LEO_BM_STATUS_RUNNING 0x80000000 //Running
|
||||
#define LEO_BM_STATUS_ERROR 0x04000000 //Error
|
||||
#define LEO_BM_STATUS_MICRO 0x02000000 //Micro Status?
|
||||
#define LEO_BM_STATUS_BLOCK 0x01000000 //Block Transfer
|
||||
#define LEO_BM_STATUS_C1CORRECTION 0x00800000 //C1 Correction
|
||||
#define LEO_BM_STATUS_C1DOUBLE 0x00400000 //C1 Double
|
||||
#define LEO_BM_STATUS_C1SINGLE 0x00200000 //C1 Single
|
||||
#define LEO_BM_STATUS_C1ERROR 0x00010000 //C1 Error
|
||||
#define LEO_BM_STATUS_RUNNING 0x80000000 // Running
|
||||
#define LEO_BM_STATUS_ERROR 0x04000000 // Error
|
||||
#define LEO_BM_STATUS_MICRO 0x02000000 // Micro Status?
|
||||
#define LEO_BM_STATUS_BLOCK 0x01000000 // Block Transfer
|
||||
#define LEO_BM_STATUS_C1CORRECTION 0x00800000 // C1 Correction
|
||||
#define LEO_BM_STATUS_C1DOUBLE 0x00400000 // C1 Double
|
||||
#define LEO_BM_STATUS_C1SINGLE 0x00200000 // C1 Single
|
||||
#define LEO_BM_STATUS_C1ERROR 0x00010000 // C1 Error
|
||||
|
||||
#define LEO_BM_CTL_START 0x80000000 //Start Buffer Manager
|
||||
#define LEO_BM_CTL_MODE 0x40000000 //Buffer Manager Mode
|
||||
#define LEO_BM_CTL_IMASK 0x20000000 //BM Interrupt Mask
|
||||
#define LEO_BM_CTL_RESET 0x10000000 //Buffer Manager Reset
|
||||
#define LEO_BM_CTL_DISABLE_OR 0x08000000 //Disable OR Check?
|
||||
#define LEO_BM_CTL_DISABLE_C1 0x04000000 //Disable C1 Correction
|
||||
#define LEO_BM_CTL_BLOCK 0x02000000 //Block Transfer
|
||||
#define LEO_BM_CTL_CLR_MECHANIC_INTR 0x01000000 //Mechanic Interrupt Reset
|
||||
#define LEO_BM_CTL_START 0x80000000 // Start Buffer Manager
|
||||
#define LEO_BM_CTL_MODE 0x40000000 // Buffer Manager Mode
|
||||
#define LEO_BM_CTL_IMASK 0x20000000 // BM Interrupt Mask
|
||||
#define LEO_BM_CTL_RESET 0x10000000 // Buffer Manager Reset
|
||||
#define LEO_BM_CTL_DISABLE_OR 0x08000000 // Disable OR Check?
|
||||
#define LEO_BM_CTL_DISABLE_C1 0x04000000 // Disable C1 Correction
|
||||
#define LEO_BM_CTL_BLOCK 0x02000000 // Block Transfer
|
||||
#define LEO_BM_CTL_CLR_MECHANIC_INTR 0x01000000 // Mechanic Interrupt Reset
|
||||
|
||||
#define LEO_BM_CTL_CONTROL_MASK 0xFF000000
|
||||
#define LEO_BM_CTL_SECTOR_MASK 0x00FF0000
|
||||
#define LEO_BM_CTL_SECTOR_SHIFT 16
|
||||
|
||||
|
||||
extern OSDevMgr __osPiDevMgr;
|
||||
extern OSPiHandle* __osCurrentHandle[];
|
||||
extern u32 __osPiAccessQueueEnabled;
|
||||
|
||||
@@ -203,7 +203,7 @@ beginseg
|
||||
include "build/src/libultra/io/contramwrite.o"
|
||||
include "build/src/libultra/io/epirawwrite.o"
|
||||
include "build/src/libultra/os/settimer.o"
|
||||
include "build/data/boot/__libm_qnan_f.rodata.o"
|
||||
include "build/data/boot/__libm_vals.rodata.o"
|
||||
include "build/src/libultra/libc/xldtob.o"
|
||||
include "build/src/libultra/libc/ldiv.o"
|
||||
include "build/src/libultra/libc/xlitob.o"
|
||||
|
||||
@@ -12,8 +12,14 @@ s32 __osFlashVersion;
|
||||
static s32 sBssPad[5];
|
||||
|
||||
uintptr_t osFlashGetAddr(u32 pageNum) {
|
||||
uintptr_t addr;
|
||||
|
||||
// Account for hardware bug in old flash where the address bits are shifted 1-off where they should be
|
||||
uintptr_t addr = (__osFlashVersion == OLD_FLASH) ? pageNum * (FLASH_BLOCK_SIZE >> 1) : pageNum * FLASH_BLOCK_SIZE;
|
||||
if (__osFlashVersion == OLD_FLASH) {
|
||||
addr = pageNum * (FLASH_BLOCK_SIZE >> 1);
|
||||
} else {
|
||||
addr = pageNum * FLASH_BLOCK_SIZE;
|
||||
}
|
||||
|
||||
return addr;
|
||||
}
|
||||
|
||||
@@ -61,7 +61,8 @@ void __osContGetInitData(u8* pattern, OSContStatus* data) {
|
||||
ptr = (u8*)__osContPifRam.ramarray;
|
||||
for (i = 0; i < __osMaxControllers; i++, ptr += sizeof(requestHeader), data++) {
|
||||
requestHeader = *(__OSContRequesFormat*)ptr;
|
||||
data->errno = (requestHeader.rxsize & 0xC0) >> 4;
|
||||
data->errno = CHNL_ERR(requestHeader);
|
||||
|
||||
if (data->errno == 0) {
|
||||
data->type = requestHeader.typel << 8 | requestHeader.typeh;
|
||||
data->status = requestHeader.status;
|
||||
@@ -83,18 +84,18 @@ void __osPackRequestData(u8 poll) {
|
||||
|
||||
__osContPifRam.status = CONT_CMD_READ_BUTTON;
|
||||
ptr = (u8*)__osContPifRam.ramarray;
|
||||
requestHeader.align = 255;
|
||||
requestHeader.txsize = 1;
|
||||
requestHeader.rxsize = 3;
|
||||
requestHeader.align = CONT_CMD_NOP;
|
||||
requestHeader.txsize = CONT_CMD_RESET_TX;
|
||||
requestHeader.rxsize = CONT_CMD_RESET_RX;
|
||||
requestHeader.poll = poll;
|
||||
requestHeader.typeh = 255;
|
||||
requestHeader.typel = 255;
|
||||
requestHeader.status = 255;
|
||||
requestHeader.align1 = 255;
|
||||
requestHeader.typeh = CONT_CMD_NOP;
|
||||
requestHeader.typel = CONT_CMD_NOP;
|
||||
requestHeader.status = CONT_CMD_NOP;
|
||||
requestHeader.align1 = CONT_CMD_NOP;
|
||||
|
||||
for (i = 0; i < __osMaxControllers; i++) {
|
||||
*(__OSContRequesFormat*)ptr = requestHeader;
|
||||
ptr += sizeof(requestHeader);
|
||||
}
|
||||
*ptr = 254;
|
||||
*ptr = CONT_CMD_END;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ void __osDevMgrMain(void* arg) {
|
||||
__osResetGlobalIntMask(OS_IM_PI);
|
||||
__osEPiRawWriteIo(ioMesg->piHandle, LEO_BM_CTL, transfer->bmCtlShadow | 0x80000000);
|
||||
|
||||
label:
|
||||
readblock1:
|
||||
osRecvMesg(devMgr->evtQueue, &sp70, OS_MESG_BLOCK);
|
||||
transfer = &ioMesg->piHandle->transferInfo;
|
||||
block = &transfer->block[transfer->blockNum];
|
||||
@@ -60,7 +60,7 @@ void __osDevMgrMain(void* arg) {
|
||||
|
||||
if ((msgVar == 1) && (ioMesg->piHandle->transferInfo.block[0].errStatus == 0)) {
|
||||
msgVar = 0;
|
||||
goto label;
|
||||
goto readblock1;
|
||||
}
|
||||
|
||||
osSendMesg(devMgr->acsQueue, NULL, OS_MESG_NOBLOCK);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "ultra64.h"
|
||||
|
||||
s32 __osSiRawWriteIo(uintptr_t devAddr, u32 data) {
|
||||
if (__osSiDeviceBusy() != 0) {
|
||||
if (__osSiDeviceBusy()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "ultra64.h"
|
||||
|
||||
void osViExtendVStart(u32 a0) {
|
||||
__additional_scanline = a0;
|
||||
void osViExtendVStart(u32 value) {
|
||||
__additional_scanline = value;
|
||||
}
|
||||
|
||||
@@ -60,8 +60,8 @@ void osCreateViManager(OSPri pri) {
|
||||
}
|
||||
}
|
||||
|
||||
void viMgrMain(void* vargs) {
|
||||
OSDevMgr* args;
|
||||
void viMgrMain(void* arg) {
|
||||
OSDevMgr* dmArgs;
|
||||
static u16 viRetrace;
|
||||
u32 addTime;
|
||||
OSIoMesg* mesg;
|
||||
@@ -73,10 +73,10 @@ void viMgrMain(void* vargs) {
|
||||
viRetrace = 1;
|
||||
}
|
||||
|
||||
args = (OSDevMgr*)vargs;
|
||||
dmArgs = (OSDevMgr*)arg;
|
||||
|
||||
while (true) {
|
||||
osRecvMesg(args->evtQueue, (OSMesg*)&mesg, OS_MESG_BLOCK);
|
||||
osRecvMesg(dmArgs->evtQueue, (OSMesg*)&mesg, OS_MESG_BLOCK);
|
||||
switch (mesg->hdr.type) {
|
||||
case OS_MESG_TYPE_VRETRACE:
|
||||
__osViSwapContext();
|
||||
|
||||
@@ -16,7 +16,7 @@ void __osViSwapContext(void) {
|
||||
field = IO_READ(VI_V_CURRENT_LINE_REG) & 1;
|
||||
s2 = osVirtualToPhysical(viNext->buffer);
|
||||
origin = (viMode->fldRegs[field].origin) + s2;
|
||||
if (viNext->state & 2) {
|
||||
if (viNext->state & VI_STATE_XSCALE_UPDATED) {
|
||||
viNext->x.scale |= viMode->comRegs.xScale & ~0xFFF;
|
||||
} else {
|
||||
viNext->x.scale = viMode->comRegs.xScale;
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
#include "ultra64.h"
|
||||
|
||||
s32 osRecvMesg(OSMesgQueue* mq, OSMesg* msg, s32 flags) {
|
||||
register u32 saveMask;
|
||||
|
||||
saveMask = __osDisableInt();
|
||||
register u32 saveMask = __osDisableInt();
|
||||
|
||||
while (MQ_IS_EMPTY(mq)) {
|
||||
if (flags == OS_MESG_NOBLOCK) {
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
#include "ultra64.h"
|
||||
|
||||
void osStartThread(OSThread* t) {
|
||||
register u32 saveMask;
|
||||
|
||||
saveMask = __osDisableInt();
|
||||
register u32 saveMask = __osDisableInt();
|
||||
|
||||
switch (t->state) {
|
||||
case OS_STATE_WAITING:
|
||||
|
||||
@@ -2,12 +2,11 @@
|
||||
* File: voicecontread2.c
|
||||
*/
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/controller_voice.h"
|
||||
#include "PR/voiceinternal.h"
|
||||
#include "PR/controller.h"
|
||||
#include "PR/voiceinternal.h"
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
#include "macros.h"
|
||||
|
||||
#define READ2FORMAT(ptr) ((__OSVoiceRead2Format*)(ptr))
|
||||
|
||||
|
||||
@@ -2,12 +2,11 @@
|
||||
* File: voicecontread36.c
|
||||
*/
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/controller_voice.h"
|
||||
#include "PR/voiceinternal.h"
|
||||
#include "PR/controller.h"
|
||||
#include "PR/voiceinternal.h"
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
#include "macros.h"
|
||||
|
||||
#define READ36FORMAT(ptr) ((__OSVoiceRead36Format*)(ptr))
|
||||
|
||||
|
||||
@@ -2,12 +2,11 @@
|
||||
* File: voicecontwrite20.c
|
||||
*/
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/controller_voice.h"
|
||||
#include "PR/voiceinternal.h"
|
||||
#include "PR/controller.h"
|
||||
#include "PR/voiceinternal.h"
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
#include "macros.h"
|
||||
|
||||
#define WRITE20FORMAT(ptr) ((__OSVoiceWrite20Format*)(ptr))
|
||||
|
||||
|
||||
@@ -2,12 +2,11 @@
|
||||
* File: voicecontwrite4.c
|
||||
*/
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/controller_voice.h"
|
||||
#include "PR/voiceinternal.h"
|
||||
#include "PR/controller.h"
|
||||
#include "PR/voiceinternal.h"
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
#include "macros.h"
|
||||
|
||||
#define WRITE4FORMAT(ptr) ((__OSVoiceWrite4Format*)(ptr))
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
* File: voicegetstatus.c
|
||||
*/
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/controller_voice.h"
|
||||
#include "PR/controller.h"
|
||||
#include "functions.h"
|
||||
|
||||
s32 __osVoiceGetStatus(OSMesgQueue* mq, s32 channel, u8* status) {
|
||||
__OSContRequestHeaderAligned header;
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
* Initializes Voice Recognition System control structure and hardware
|
||||
*/
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/controller_voice.h"
|
||||
#include "PR/os_voice.h"
|
||||
#include "PR/controller.h"
|
||||
#include "functions.h"
|
||||
#include "macros.h"
|
||||
|
||||
static u8 sCmds[] = {
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
* Mask words registered in the voice recognition system
|
||||
*/
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/controller_voice.h"
|
||||
#include "PR/os_voice.h"
|
||||
#include "PR/controller.h"
|
||||
#include "functions.h"
|
||||
#include "macros.h"
|
||||
|
||||
s32 osVoiceMaskDictionary(OSVoiceHandle* hd, u8* maskPattern, int size) {
|
||||
|
||||
@@ -2,12 +2,10 @@
|
||||
* File: voicesetadconverter.c
|
||||
*/
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/controller_voice.h"
|
||||
#include "PR/voiceinternal.h"
|
||||
#include "PR/controller.h"
|
||||
#include "PR/voiceinternal.h"
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
#define SWRITEFORMAT(ptr) ((__OSVoiceSWriteFormat*)(ptr))
|
||||
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
* Registers words to the Voice Recognition System dictionary
|
||||
*/
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/controller_voice.h"
|
||||
#include "PR/os_voice.h"
|
||||
#include "PR/controller.h"
|
||||
#include "functions.h"
|
||||
#include "macros.h"
|
||||
|
||||
s32 osVoiceSetWord(OSVoiceHandle* hd, u8* word) {
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
0x800992F0 : "lookathil",
|
||||
0x80099300 : "xprintf",
|
||||
0x80099400 : "cosf",
|
||||
0x80099450 : "__libm_qnan_f",
|
||||
0x80099450 : "__libm_vals",
|
||||
0x80099460 : "xldtob",
|
||||
0x800994C0 : "llcvt",
|
||||
0x800994D0 : "build",
|
||||
|
||||
Reference in New Issue
Block a user