mirror of
https://github.com/zeldaret/mm.git
synced 2026-08-16 12:45:11 -04:00
Merge remote-tracking branch 'upstream/master' into ultracleanup2
This commit is contained in:
@@ -4,6 +4,35 @@
|
||||
#include "ultratypes.h"
|
||||
#include "os_pi.h"
|
||||
|
||||
#define FLASH_START_ADDR 0x08000000 // FRAM Base Address in Cart Memory
|
||||
|
||||
#define FLASH_SIZE 0x20000
|
||||
|
||||
#define FLASH_LATENCY 0x5
|
||||
#define FLASH_PULSE 0x0C
|
||||
#define FLASH_PAGE_SIZE 0xF
|
||||
#define FLASH_REL_DURATION 0x2
|
||||
#define DEVICE_TYPE_FLASH 8
|
||||
|
||||
/* OLD_FLASH is MX_PROTO_A, MX_A and MX_C */
|
||||
#define OLD_FLASH 0
|
||||
/* NEW_FLASH is MX_B_AND_D and MATSUSHITA flash */
|
||||
#define NEW_FLASH 1
|
||||
|
||||
#define FLASH_STATUS_ERASE_BUSY 2
|
||||
#define FLASH_STATUS_ERASE_OK 0
|
||||
#define FLASH_STATUS_ERASE_ERROR -1
|
||||
|
||||
#define FLASH_STATUS_WRITE_BUSY 1
|
||||
#define FLASH_STATUS_WRITE_OK 0
|
||||
#define FLASH_STATUS_WRITE_ERROR -1
|
||||
|
||||
#define FLASH_VERSION_MX_PROTO_A 0x00C20000
|
||||
#define FLASH_VERSION_MX_A 0x00C20001
|
||||
#define FLASH_VERSION_MX_C 0x00C2001E
|
||||
#define FLASH_VERSION_MX_B_AND_D 0x00C2001D
|
||||
#define FLASH_VERSION_MEI 0x003200F1
|
||||
|
||||
|
||||
OSPiHandle* osFlashReInit(u8 latency, u8 pulse, u8 pageSize, u8 relDuration, u32 start);
|
||||
OSPiHandle* osFlashInit(void);
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
#ifndef PR_OS_INTERNAL_FLASH_H
|
||||
#define PR_OS_INTERNAL_FLASH_H
|
||||
|
||||
#include "os_flash.h"
|
||||
|
||||
#define FLASH_BLOCK_SIZE 128
|
||||
|
||||
#define FLASH_CMD_REG 0x10000 // Located at 0x08010000 on the Cart
|
||||
|
||||
/* set whole chip erase mode */
|
||||
#define FLASH_CMD_CHIP_ERASE 0x3C000000
|
||||
/* set sector erase mode */
|
||||
#define FLASH_CMD_SECTOR_ERASE 0x4B000000
|
||||
/* do erasure */
|
||||
#define FLASH_CMD_EXECUTE_ERASE 0x78000000
|
||||
/* program selected page */
|
||||
#define FLASH_CMD_PROGRAM_PAGE 0xA5000000
|
||||
/* set page program mode */
|
||||
#define FLASH_CMD_PAGE_PROGRAM 0xB4000000
|
||||
/* set status mode */
|
||||
#define FLASH_CMD_STATUS 0xD2000000
|
||||
/* set silicon id mode */
|
||||
#define FLASH_CMD_ID 0xE1000000
|
||||
/* set read mode */
|
||||
#define FLASH_CMD_READ_ARRAY 0xF0000000
|
||||
|
||||
#endif
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef PR_OS_INTERNAL_REG
|
||||
#define PR_OS_INTERNAL_REG
|
||||
#ifndef PR_OS_INTERNAL_REG_H
|
||||
#define PR_OS_INTERNAL_REG_H
|
||||
|
||||
#include "ultratypes.h"
|
||||
#include "os_exception.h"
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
#ifndef PR_RSP_H
|
||||
#define PR_RSP_H
|
||||
|
||||
#ifndef PR_OS_INTERNAL_RSP_H
|
||||
#define PR_OS_INTERNAL_RSP_H
|
||||
|
||||
#include "ultratypes.h"
|
||||
#include "libc/stddef.h"
|
||||
|
||||
|
||||
u32 __osSpGetStatus(void);
|
||||
void __osSpSetStatus(u32 data);
|
||||
s32 __osSpSetPc(u32 pc);
|
||||
s32 __osSpRawStartDma(s32 direction, u32 devAddr, void* dramAddr, size_t size);
|
||||
|
||||
s32 __osSpSetPc(void* pc);
|
||||
s32 __osSpRawStartDma(s32 direction, void* devAddr, void* dramAddr, size_t size);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -99,10 +99,8 @@ typedef struct OSDevMgr {
|
||||
#define PI_DOMAIN1 0
|
||||
#define PI_DOMAIN2 1
|
||||
|
||||
|
||||
extern OSPiHandle* __osPiTable;
|
||||
|
||||
|
||||
void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt);
|
||||
|
||||
OSPiHandle* osCartRomInit(void);
|
||||
|
||||
+7
-1
@@ -122,6 +122,13 @@ extern OSViMode osViModeNtscLan1;
|
||||
extern OSViMode osViModeMpalLan1;
|
||||
extern OSViMode osViModeFpalLan1;
|
||||
|
||||
extern OSViMode osViModeNtscHpf1;
|
||||
extern OSViMode osViModePalLan1;
|
||||
extern OSViMode osViModeNtscHpn1;
|
||||
extern OSViMode osViModeNtscLan1;
|
||||
extern OSViMode osViModeMpalLan1;
|
||||
extern OSViMode osViModeFpalLan1;
|
||||
|
||||
void* osViGetCurrentFramebuffer(void);
|
||||
void* osViGetNextFramebuffer(void);
|
||||
void osViSetXScale(f32 value);
|
||||
@@ -134,5 +141,4 @@ void osViSwapBuffer(void* frameBufPtr);
|
||||
void osViBlack(u8 active);
|
||||
void osCreateViManager(OSPri pri);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -102,5 +102,4 @@ s32 __osEPiRawReadIo(OSPiHandle* handle, uintptr_t devAddr, u32* data);
|
||||
s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, uintptr_t cartAddr, void* dramAddr, size_t size);
|
||||
OSMesgQueue* osPiGetCmdQueue(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
+21
-21
@@ -203,33 +203,33 @@
|
||||
#define VI_V_CURRENT_LINE_REG 0x04400010
|
||||
#define VI_BURST_REG 0x04400014
|
||||
#define VI_TIMING_REG 0x04400014
|
||||
#define VI_V_SYNC_REG 0x04400018 //VI vertical sync
|
||||
#define VI_H_SYNC_REG 0x0440001C //VI horizontal sync
|
||||
#define VI_LEAP_REG 0x04400020 //VI horizontal sync leap
|
||||
#define VI_V_SYNC_REG 0x04400018 // VI vertical sync
|
||||
#define VI_H_SYNC_REG 0x0440001C // VI horizontal sync
|
||||
#define VI_LEAP_REG 0x04400020 // VI horizontal sync leap
|
||||
#define VI_H_SYNC_LEAP_REG 0x04400020
|
||||
#define VI_H_START_REG 0x04400024 //VI horizontal video
|
||||
#define VI_H_START_REG 0x04400024 // VI horizontal video
|
||||
#define VI_H_VIDEO_REG 0x04400024
|
||||
#define VI_V_START_REG 0x04400028 //VI vertical video
|
||||
#define VI_V_START_REG 0x04400028 // VI vertical video
|
||||
#define VI_V_VIDEO_REG 0x04400028
|
||||
#define VI_V_BURST_REG 0x0440002C //VI vertical burst
|
||||
#define VI_X_SCALE_REG 0x04400030 //VI x-scale
|
||||
#define VI_Y_SCALE_REG 0x04400034 //VI y-scale
|
||||
#define VI_V_BURST_REG 0x0440002C // VI vertical burst
|
||||
#define VI_X_SCALE_REG 0x04400030 // VI x-scale
|
||||
#define VI_Y_SCALE_REG 0x04400034 // VI y-scale
|
||||
|
||||
#define PI_DRAM_ADDR_REG 0x04600000 //PI DRAM address
|
||||
#define PI_CART_ADDR_REG 0x04600004 //PI pbus (cartridge) address
|
||||
#define PI_RD_LEN_REG 0x04600008 //PI read length
|
||||
#define PI_WR_LEN_REG 0x0460000C //PI write length
|
||||
#define PI_STATUS_REG 0x04600010 //PI status
|
||||
#define PI_BSD_DOM1_LAT_REG 0x04600014 //PI dom1 latency
|
||||
#define PI_DRAM_ADDR_REG 0x04600000 // PI DRAM address
|
||||
#define PI_CART_ADDR_REG 0x04600004 // PI pbus (cartridge) address
|
||||
#define PI_RD_LEN_REG 0x04600008 // PI read length
|
||||
#define PI_WR_LEN_REG 0x0460000C // PI write length
|
||||
#define PI_STATUS_REG 0x04600010 // PI status
|
||||
#define PI_BSD_DOM1_LAT_REG 0x04600014 // PI dom1 latency
|
||||
#define PI_DOMAIN1_REG 0x04600014
|
||||
#define PI_BSD_DOM1_PWD_REG 0x04600018 //PI dom1 pulse width
|
||||
#define PI_BSD_DOM1_PGS_REG 0x0460001C //PI dom1 page size
|
||||
#define PI_BSD_DOM1_RLS_REG 0x04600020 //PI dom1 release
|
||||
#define PI_BSD_DOM2_LAT_REG 0x04600024 //PI dom2 latency
|
||||
#define PI_BSD_DOM1_PWD_REG 0x04600018 // PI dom1 pulse width
|
||||
#define PI_BSD_DOM1_PGS_REG 0x0460001C // PI dom1 page size
|
||||
#define PI_BSD_DOM1_RLS_REG 0x04600020 // PI dom1 release
|
||||
#define PI_BSD_DOM2_LAT_REG 0x04600024 // PI dom2 latency
|
||||
#define PI_DOMAIN2_REG 0x04600024
|
||||
#define PI_BSD_DOM2_PWD_REG 0x04600028 //PI dom2 pulse width
|
||||
#define PI_BSD_DOM2_PGS_REG 0x0460002C //PI dom2 page size
|
||||
#define PI_BSD_DOM2_RLS_REG 0x04600030 //PI dom2 release
|
||||
#define PI_BSD_DOM2_PWD_REG 0x04600028 // PI dom2 pulse width
|
||||
#define PI_BSD_DOM2_PGS_REG 0x0460002C // PI dom2 page size
|
||||
#define PI_BSD_DOM2_RLS_REG 0x04600030 // PI dom2 release
|
||||
|
||||
#define PI_STATUS_DMA_BUSY (1 << 0)
|
||||
#define PI_STATUS_IO_BUSY (1 << 1)
|
||||
|
||||
+2
-2
@@ -103,7 +103,7 @@ typedef struct FaultMgr {
|
||||
/* 0x844 */ void* fb;
|
||||
} FaultMgr; // size = 0x848
|
||||
|
||||
extern FaultMgr gFaultMgr;
|
||||
|
||||
// TODO: Commented out to try to avoid bss reorder in fault.c
|
||||
// extern FaultMgr gFaultMgr;
|
||||
|
||||
#endif
|
||||
|
||||
+3
-35
@@ -40,11 +40,11 @@ void CIC6105_PrintRomInfo(void);
|
||||
void CIC6105_AddRomInfoFaultPage(void);
|
||||
void CIC6105_RemoveRomInfoFaultPage(void);
|
||||
void func_800818F4(void);
|
||||
void __osSyncVPrintf(const char* fmt, ...);
|
||||
void osSyncPrintfUnused(const char* fmt, ...);
|
||||
void rmonPrintf(const char* fmt, ...);
|
||||
|
||||
void func_80084940(void);
|
||||
void func_80084968(void);
|
||||
void RcpUtils_PrintRegisterStatus(void);
|
||||
void RcpUtils_Reset(void);
|
||||
|
||||
void PadUtils_Init(Input* input);
|
||||
void func_80085150(void);
|
||||
@@ -1160,34 +1160,6 @@ void Play_AssignPlayerCsIdsFromScene(GameState* thisx, s32 spawnCsId);
|
||||
void Play_FillScreen(GameState* thisx, s16 fillScreenOn, u8 red, u8 green, u8 blue, u8 alpha);
|
||||
void Play_Init(GameState* thisx);
|
||||
|
||||
void PreRender_SetValuesSave(PreRender* this, u32 width, u32 height, void* fbuf, void* zbuf, void* cvg);
|
||||
void PreRender_Init(PreRender* this);
|
||||
void PreRender_SetValues(PreRender* this, u32 width, u32 height, void* fbuf, void* zbuf);
|
||||
void PreRender_Destroy(PreRender* this);
|
||||
void func_8016FDB8(PreRender* this, Gfx** gfxp, void* buf, void* bufSave, u32 arg4);
|
||||
void func_8016FF70(PreRender* this, Gfx** gfxp, void* buf, void* bufSave);
|
||||
void func_8016FF90(PreRender* this, Gfx** gfxp, void* buf, void* bufSave, s32 envR, s32 envG, s32 envB, s32 envA);
|
||||
void func_80170200(PreRender* this, Gfx** gfxp, void* buf, void* bufSave);
|
||||
void func_8017023C(PreRender* this, Gfx** gfxp, void* buf, void* bufSave);
|
||||
void func_8017057C(PreRender* this, Gfx** gfxp);
|
||||
void func_801705B4(PreRender* this, Gfx** gfxp);
|
||||
void func_801705EC(PreRender* this, Gfx** gfxp);
|
||||
void func_80170730(PreRender* this, Gfx** gfxp);
|
||||
void func_80170774(PreRender* this, Gfx** gfxp);
|
||||
void func_80170798(PreRender* this, Gfx** gfxp);
|
||||
void func_80170AE0(PreRender* this, Gfx** gfxp, s32 alpha);
|
||||
void func_80170B28(PreRender* this, Gfx** gfxp);
|
||||
void PreRender_AntiAliasAlgorithm(PreRender* this, s32 x, s32 y);
|
||||
void PreRender_ApplyAntiAliasingFilter(PreRender* this);
|
||||
u32 func_801716C4(u8* arg0, u8* arg1, u8* arg2);
|
||||
void func_801717F8(PreRender* this);
|
||||
void PreRender_ApplyFilters(PreRender* this);
|
||||
void PreRender_ApplyFiltersSlowlyInit(PreRender* this);
|
||||
void PreRender_ApplyFiltersSlowlyDestroy(PreRender* this);
|
||||
void func_801720C4(PreRender* this);
|
||||
void func_801720FC(PreRenderParams* params, Gfx** gfxp);
|
||||
void Prerender_DrawBackground2D(Gfx** gfxp, void* timg, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 tt, u16 arg8, f32 x, f32 y, f32 xScale, f32 yScale, u32 flags);
|
||||
|
||||
void GameAlloc_Log(GameAlloc* this);
|
||||
void* GameAlloc_Malloc(GameAlloc* this, size_t size);
|
||||
void GameAlloc_Free(GameAlloc* this, void* data);
|
||||
@@ -1208,10 +1180,6 @@ void Graph_ThreadEntry(void* arg);
|
||||
Gfx* Graph_GfxPlusOne(Gfx* gfx);
|
||||
Gfx* Graph_BranchDlist(Gfx* gfx, Gfx* dst);
|
||||
void* Graph_DlistAlloc(Gfx** gfx, size_t size);
|
||||
ListAlloc* ListAlloc_Init(ListAlloc* this);
|
||||
// void ListAlloc_Alloc(void);
|
||||
// void ListAlloc_Free(void);
|
||||
void ListAlloc_FreeAll(ListAlloc* this);
|
||||
|
||||
void Sched_SwapFramebuffer(CfbInfo* cfbInfo);
|
||||
void Sched_RetraceUpdateFramebuffer(SchedContext* sched, CfbInfo* cfbInfo);
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef LISTALLOC_H
|
||||
#define LISTALLOC_H
|
||||
|
||||
#include "ultra64.h"
|
||||
|
||||
typedef struct ListAlloc {
|
||||
/* 0x0 */ struct ListAlloc* prev;
|
||||
/* 0x4 */ struct ListAlloc* next;
|
||||
} ListAlloc; // size = 0x8
|
||||
|
||||
ListAlloc* ListAlloc_Init(ListAlloc* this);
|
||||
void* ListAlloc_Alloc(ListAlloc* this, size_t size);
|
||||
void ListAlloc_Free(ListAlloc* this, void* data);
|
||||
void ListAlloc_FreeAll(ListAlloc* this);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,20 @@
|
||||
#ifndef SYS_FLASHROM_H
|
||||
#define SYS_FLASHROM_H
|
||||
|
||||
#include "ultra64.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 requestType;
|
||||
/* 0x04 */ OSMesg response;
|
||||
/* 0x08 */ void* addr;
|
||||
/* 0x0C */ s32 pageNum;
|
||||
/* 0x10 */ s32 pageCount;
|
||||
/* 0x14 */ OSMesgQueue messageQueue;
|
||||
} FlashromRequest; // size = 0x2C
|
||||
|
||||
#define FLASHROM_REQUEST_WRITE 1
|
||||
#define FLASHROM_REQUEST_READ 2
|
||||
|
||||
#define FLASH_TYPE_MAGIC 0x11118001
|
||||
|
||||
#endif
|
||||
@@ -24,38 +24,6 @@ extern s32 sIrqMgrRetraceCount;
|
||||
// extern UNK_TYPE4 D_80097524;
|
||||
// extern u32 sRandInt;
|
||||
|
||||
extern char bootThreadName[];
|
||||
extern char idleThreadName[];
|
||||
extern char irqmgrThreadName[];
|
||||
extern char mainThreadName[];
|
||||
extern f32 D_800981B0;
|
||||
extern char D_800981C0[];
|
||||
extern const char dmamgrString800981C4[];
|
||||
extern const char dmamgrString800981D4[];
|
||||
extern const char dmamgrString800981E4[];
|
||||
extern const char dmamgrString800981F4[];
|
||||
extern const char dmamgrThreadName[];
|
||||
extern char D_80098210[];
|
||||
extern char yaz0String80098220[];
|
||||
extern char yaz0String8009823C[];
|
||||
extern char D_80098280[];
|
||||
extern char D_80098290[];
|
||||
extern char D_800982A4[];
|
||||
|
||||
extern char D_800990B0[];
|
||||
extern f32 D_800990C0[9];
|
||||
extern f32 D_800990E4;
|
||||
extern f32 D_800990E8;
|
||||
extern f32 D_800990EC;
|
||||
extern f32 D_800990F0;
|
||||
extern f32 D_800990F4;
|
||||
extern f32 D_800990F8;
|
||||
extern f32 D_800990FC;
|
||||
extern f32 D_80099100;
|
||||
extern f32 D_80099104;
|
||||
extern f32 D_80099108;
|
||||
extern f32 D_8009910C;
|
||||
|
||||
extern char gBuildTeam[];
|
||||
extern char gBuildDate[];
|
||||
extern char gBuildMakeOption[];
|
||||
|
||||
+1
-108
@@ -52,6 +52,7 @@
|
||||
#include "z64object.h"
|
||||
#include "z64ocarina.h"
|
||||
#include "z64player.h"
|
||||
#include "z64prerender.h"
|
||||
#include "z64save.h"
|
||||
#include "z64scene.h"
|
||||
#include "z64schedule.h"
|
||||
@@ -63,15 +64,6 @@
|
||||
#include "z64view.h"
|
||||
#include "regs.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 requestType;
|
||||
/* 0x04 */ OSMesg response;
|
||||
/* 0x08 */ void* addr;
|
||||
/* 0x0C */ s32 pageNum;
|
||||
/* 0x10 */ s32 pageCount;
|
||||
/* 0x14 */ OSMesgQueue messageQueue;
|
||||
} FlashromRequest; // size = 0x2C
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ View view;
|
||||
/* 0x168 */ u8* iconItemSegment;
|
||||
@@ -231,53 +223,6 @@ typedef struct {
|
||||
/* 0xFA */ u8 unk_FA[4];
|
||||
} EnvironmentContext; // size = 0x100
|
||||
|
||||
typedef struct ListAlloc {
|
||||
/* 0x0 */ struct ListAlloc* prev;
|
||||
/* 0x4 */ struct ListAlloc* next;
|
||||
} ListAlloc; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 width;
|
||||
/* 0x02 */ u16 height;
|
||||
/* 0x04 */ u16 widthSave;
|
||||
/* 0x06 */ u16 heightSave;
|
||||
/* 0x08 */ char unk_8[8];
|
||||
/* 0x10 */ u16* fbuf;
|
||||
/* 0x14 */ u16* fbufSave;
|
||||
/* 0x18 */ u8* cvgSave;
|
||||
/* 0x1C */ u16* zbuf;
|
||||
/* 0x20 */ u16* zbufSave;
|
||||
/* 0x24 */ u16 ulxSave;
|
||||
/* 0x26 */ u16 ulySave;
|
||||
/* 0x28 */ u16 lrxSave;
|
||||
/* 0x2A */ u16 lrySave;
|
||||
/* 0x2C */ u16 ulx;
|
||||
/* 0x2E */ u16 uly;
|
||||
/* 0x30 */ u16 lrx;
|
||||
/* 0x32 */ u16 lry;
|
||||
/* 0x34 */ char unk_34[16];
|
||||
/* 0x44 */ ListAlloc alloc;
|
||||
/* 0x4C */ u8 unk_4C;
|
||||
/* 0x4D */ u8 unk_4D;
|
||||
/* 0x4E */ char unk_4E[2];
|
||||
} PreRender; // size = 0x50
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ void* timg;
|
||||
/* 0x04 */ void* tlut;
|
||||
/* 0x08 */ u16 width;
|
||||
/* 0x0A */ u16 height;
|
||||
/* 0x0C */ u8 fmt;
|
||||
/* 0x0D */ u8 siz;
|
||||
/* 0x0E */ u16 tt;
|
||||
/* 0x10 */ u16 unk_10;
|
||||
/* 0x14 */ f32 x;
|
||||
/* 0x18 */ f32 y;
|
||||
/* 0x1C */ f32 xScale;
|
||||
/* 0x20 */ f32 yScale;
|
||||
/* 0x24 */ u32 flags;
|
||||
} PreRenderParams; // size = 0x28
|
||||
|
||||
struct PlayState;
|
||||
|
||||
typedef struct {
|
||||
@@ -393,56 +338,4 @@ typedef struct {
|
||||
/* 0x10 */ Color_RGBA8_u32 envColor;
|
||||
} Struct_80140E80; // size = 0x14
|
||||
|
||||
// TODO: Dedicated Header?
|
||||
#define FRAM_BASE_ADDRESS 0x08000000 // FRAM Base Address in Cart Memory
|
||||
#define FRAM_STATUS_REGISTER FRAM_BASE_ADDRESS // FRAM Base Address in Cart Memory
|
||||
#define FRAM_COMMAND_REGISTER 0x10000 // Located at 0x08010000 on the Cart
|
||||
|
||||
#define FLASH_VERSION_MX_PROTO_A 0x00C20000
|
||||
#define FLASH_VERSION_MX_A 0x00C20001
|
||||
#define FLASH_VERSION_MX_C 0x00C2001E
|
||||
#define FLASH_VERSION_MX_B_AND_D 0x00C2001D
|
||||
#define FLASH_VERSION_MEI 0x003200F1
|
||||
|
||||
#define FLASH_TYPE_MAGIC 0x11118001
|
||||
|
||||
#define FLASH_PAGE_SIZE 128
|
||||
|
||||
#define FLASHROM_REQUEST_WRITE 1
|
||||
#define FLASHROM_REQUEST_READ 2
|
||||
|
||||
typedef enum FramCommand {
|
||||
/* Does nothing for FRAM_COMMAND_SET_MODE_READ_AND_STATUS, FRAM_MODE_NOP, FRAM_COMMAND_SET_MODE_STATUS_AND_STATUS
|
||||
Initializes fram to 0xFF in FRAM_MODE_ERASE
|
||||
Writes Contents in FLASHRAM_MODE_WRITE
|
||||
After execution, sets FRAM_MODE to FRAM_MODE_NOP */
|
||||
FRAM_COMMAND_EXECUTE = 0xD2000000,
|
||||
/* flashram->erase_offset = (command & 0xFFFF) * 128; */
|
||||
FRAM_COMMAND_SET_ERASE_SECTOR_OFFSET = 0x4B000000,
|
||||
/* flashram->mode = FLASHRAM_MODE_ERASE;
|
||||
flashram->status = 0x1111800800C20000LL; */
|
||||
FRAM_COMMAND_SET_MODE_ERASE_AND_STATUS = 0x78000000,
|
||||
/* flashram->erase_offset = (command & 0xFFFF) * 128;
|
||||
flashram->status = 0x1111800400C20000LL; */
|
||||
FRAM_COMMAND_SET_ERASE_SECTOR_OFFSET_AND_STATUS = 0xA5000000,
|
||||
/* flashram->mode = FLASHRAM_MODE_WRITE; */
|
||||
FRAM_COMMAND_SET_MODE_WRITE = 0xB4000000,
|
||||
/* flashram->mode = FLASHRAM_MODE_STATUS;
|
||||
flashram->status = 0x1111800100C20000LL; */
|
||||
FRAM_COMMAND_SET_MODE_STATUS_AND_STATUS = 0xE1000000,
|
||||
/* flashram->mode = FLASHRAM_MODE_READ;
|
||||
flashram->status = 0x11118004F0000000LL; */
|
||||
FRAM_COMMAND_SET_MODE_READ_AND_STATUS = 0xF0000000,
|
||||
/* unk */
|
||||
FRAM_COMMAND_UNK_ERASE_OPERATION = 0x3C000000
|
||||
} FramCommand;
|
||||
|
||||
typedef enum FramMode {
|
||||
/* 0 */ FRAM_MODE_NOP,
|
||||
/* 1 */ FRAM_MODE_ERASE,
|
||||
/* 2 */ FRAM_MODE_WRITE,
|
||||
/* 3 */ FRAM_MODE_READ,
|
||||
/* 4 */ FRAM_MODE_STATUS
|
||||
} FramMode;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define Z64ACTOR_H
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
#include "color.h"
|
||||
#include "padutils.h"
|
||||
#include "z64math.h"
|
||||
#include "z64animation.h"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "z64dma.h"
|
||||
#include "z64math.h"
|
||||
|
||||
struct GameState;
|
||||
struct PlayState;
|
||||
struct Actor;
|
||||
struct SkelAnime;
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
#ifndef Z64_PRERENDER_H
|
||||
#define Z64_PRERENDER_H
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "listalloc.h"
|
||||
#include "unk.h"
|
||||
|
||||
#define BG2D_FLAGS_1 (1 << 0)
|
||||
#define BG2D_FLAGS_2 (1 << 1)
|
||||
#define BG2D_FLAGS_AC_THRESHOLD (1 << 2)
|
||||
#define BG2D_FLAGS_LOAD_S2DEX2 (1 << 3)
|
||||
#define BG2D_FLAGS_COPY (1 << 4)
|
||||
|
||||
typedef enum PrerenderFilterState {
|
||||
/* 0 */ PRERENDER_FILTER_STATE_NONE,
|
||||
/* 1 */ PRERENDER_FILTER_STATE_PROCESS,
|
||||
/* 2 */ PRERENDER_FILTER_STATE_DONE
|
||||
} PrerenderFilterState;
|
||||
|
||||
typedef struct PreRender {
|
||||
/* 0x00 */ u16 width;
|
||||
/* 0x02 */ u16 height;
|
||||
/* 0x04 */ u16 widthSave;
|
||||
/* 0x06 */ u16 heightSave;
|
||||
/* 0x08 */ UNK_TYPE1 unk_08[0x8];
|
||||
/* 0x10 */ u16* fbuf;
|
||||
/* 0x14 */ u16* fbufSave;
|
||||
/* 0x18 */ u8* cvgSave;
|
||||
/* 0x1C */ u16* zbuf;
|
||||
/* 0x20 */ u16* zbufSave;
|
||||
/* 0x24 */ u16 ulxSave;
|
||||
/* 0x26 */ u16 ulySave;
|
||||
/* 0x28 */ u16 lrxSave;
|
||||
/* 0x2A */ u16 lrySave;
|
||||
/* 0x2C */ u16 ulx;
|
||||
/* 0x2E */ u16 uly;
|
||||
/* 0x30 */ u16 lrx;
|
||||
/* 0x32 */ u16 lry;
|
||||
/* 0x34 */ UNK_TYPE1 unk_34[0x10];
|
||||
/* 0x44 */ ListAlloc alloc;
|
||||
/* 0x4C */ u8 unk_4C;
|
||||
/* 0x4D */ u8 filterState; // See `PrerenderFilterState`
|
||||
} PreRender; // size = 0x50
|
||||
|
||||
|
||||
void PreRender_SetValuesSave(PreRender* this, u32 width, u32 height, void* fbuf, void* zbuf, void* cvg);
|
||||
void PreRender_Init(PreRender* this);
|
||||
void PreRender_SetValues(PreRender* this, u32 width, u32 height, void* fbuf, void* zbuf);
|
||||
void PreRender_Destroy(PreRender* this);
|
||||
void PreRender_CopyImage(PreRender* this, Gfx** gfxp, void* img, void* imgDst, u32 useThresholdAlphaCompare);
|
||||
void PreRender_RestoreBuffer(PreRender* this, Gfx** gfxp, void* buf, void* bufSave);
|
||||
void func_8016FF90(PreRender* this, Gfx** gfxp, void* buf, void* bufSave, s32 envR, s32 envG, s32 envB, s32 envA);
|
||||
void func_80170200(PreRender* this, Gfx** gfxp, void* buf, void* bufSave);
|
||||
void PreRender_CoverageRgba16ToI8(PreRender* this, Gfx** gfxp, void* img, void* cvgDst);
|
||||
void PreRender_SaveZBuffer(PreRender* this, Gfx** gfxp);
|
||||
void PreRender_SaveFramebuffer(PreRender* this, Gfx** gfxp);
|
||||
void PreRender_FetchFbufCoverage(PreRender* this, Gfx** gfxp);
|
||||
void PreRender_DrawCoverage(PreRender* this, Gfx** gfxp);
|
||||
void PreRender_RestoreZBuffer(PreRender* this, Gfx** gfxp);
|
||||
void func_80170798(PreRender* this, Gfx** gfxp);
|
||||
void func_80170AE0(PreRender* this, Gfx** gfxp, s32 alpha);
|
||||
void PreRender_RestoreFramebuffer(PreRender* this, Gfx** gfxp);
|
||||
void PreRender_AntiAliasFilterPixel(PreRender* this, s32 x, s32 y);
|
||||
void PreRender_AntiAliasFilter(PreRender* this);
|
||||
u32 PreRender_Get5bMedian9(u8* px1, u8* px2, u8* px3);
|
||||
void PreRender_DivotFilter(PreRender* this);
|
||||
void PreRender_ApplyFilters(PreRender* this);
|
||||
void PreRender_ApplyFiltersSlowlyInit(PreRender* this);
|
||||
void PreRender_ApplyFiltersSlowlyDestroy(PreRender* this);
|
||||
void func_801720C4(PreRender* this);
|
||||
void Prerender_DrawBackground2D(Gfx** gfxp, void* timg, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 tt, u16 tlutCount, f32 x, f32 y, f32 xScale, f32 yScale, u32 flags);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user