You've already forked ultrasm64-2
mirror of
https://github.com/HackerN64/ultrasm64-2.git
synced 2026-01-21 10:38:08 -08:00
Refresh 2
This commit is contained in:
473
include/PR/abi.h
473
include/PR/abi.h
File diff suppressed because it is too large
Load Diff
204
include/PR/gbi.h
204
include/PR/gbi.h
@@ -18,7 +18,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef _GBI_H_
|
||||
#define _GBI_H_
|
||||
#define _GBI_H_
|
||||
|
||||
#include <PR/ultratypes.h>
|
||||
|
||||
@@ -91,57 +91,57 @@
|
||||
# ifndef F3DEX_GBI
|
||||
# define F3DEX_GBI
|
||||
# endif
|
||||
#define G_NOOP 0x00
|
||||
#define G_RDPHALF_2 0xf1
|
||||
#define G_SETOTHERMODE_H 0xe3
|
||||
#define G_SETOTHERMODE_L 0xe2
|
||||
#define G_RDPHALF_1 0xe1
|
||||
#define G_SPNOOP 0xe0
|
||||
#define G_ENDDL 0xdf
|
||||
#define G_DL 0xde
|
||||
#define G_LOAD_UCODE 0xdd
|
||||
#define G_MOVEMEM 0xdc
|
||||
#define G_MOVEWORD 0xdb
|
||||
#define G_MTX 0xda
|
||||
#define G_NOOP 0x00
|
||||
#define G_RDPHALF_2 0xf1
|
||||
#define G_SETOTHERMODE_H 0xe3
|
||||
#define G_SETOTHERMODE_L 0xe2
|
||||
#define G_RDPHALF_1 0xe1
|
||||
#define G_SPNOOP 0xe0
|
||||
#define G_ENDDL 0xdf
|
||||
#define G_DL 0xde
|
||||
#define G_LOAD_UCODE 0xdd
|
||||
#define G_MOVEMEM 0xdc
|
||||
#define G_MOVEWORD 0xdb
|
||||
#define G_MTX 0xda
|
||||
#define G_GEOMETRYMODE 0xd9
|
||||
#define G_POPMTX 0xd8
|
||||
#define G_TEXTURE 0xd7
|
||||
#define G_DMA_IO 0xd6
|
||||
#define G_SPECIAL_1 0xd5
|
||||
#define G_SPECIAL_2 0xd4
|
||||
#define G_SPECIAL_3 0xd3
|
||||
#define G_POPMTX 0xd8
|
||||
#define G_TEXTURE 0xd7
|
||||
#define G_DMA_IO 0xd6
|
||||
#define G_SPECIAL_1 0xd5
|
||||
#define G_SPECIAL_2 0xd4
|
||||
#define G_SPECIAL_3 0xd3
|
||||
|
||||
#define G_VTX 0x01
|
||||
#define G_MODIFYVTX 0x02
|
||||
#define G_CULLDL 0x03
|
||||
#define G_BRANCH_Z 0x04
|
||||
#define G_TRI1 0x05
|
||||
#define G_VTX 0x01
|
||||
#define G_MODIFYVTX 0x02
|
||||
#define G_CULLDL 0x03
|
||||
#define G_BRANCH_Z 0x04
|
||||
#define G_TRI1 0x05
|
||||
#define G_TRI2 0x06
|
||||
#define G_QUAD 0x07
|
||||
#define G_LINE3D 0x08
|
||||
#else /* F3DEX_GBI_2 */
|
||||
#else /* F3DEX_GBI_2 */
|
||||
|
||||
/* DMA commands: */
|
||||
#define G_SPNOOP 0 /* handle 0 gracefully */
|
||||
#define G_MTX 1
|
||||
#define G_SPNOOP 0 /* handle 0 gracefully */
|
||||
#define G_MTX 1
|
||||
#define G_RESERVED0 2 /* not implemeted */
|
||||
#define G_MOVEMEM 3 /* move a block of memory (up to 4 words) to dmem */
|
||||
#define G_VTX 4
|
||||
#define G_VTX 4
|
||||
#define G_RESERVED1 5 /* not implemeted */
|
||||
#define G_DL 6
|
||||
#define G_DL 6
|
||||
#define G_RESERVED2 7 /* not implemeted */
|
||||
#define G_RESERVED3 8 /* not implemeted */
|
||||
#define G_SPRITE2D_BASE 9 /* sprite command */
|
||||
|
||||
/* IMMEDIATE commands: */
|
||||
#define G_IMMFIRST -65
|
||||
#define G_TRI1 (G_IMMFIRST-0)
|
||||
#define G_IMMFIRST -65
|
||||
#define G_TRI1 (G_IMMFIRST-0)
|
||||
#define G_CULLDL (G_IMMFIRST-1)
|
||||
#define G_POPMTX (G_IMMFIRST-2)
|
||||
#define G_MOVEWORD (G_IMMFIRST-3)
|
||||
#define G_TEXTURE (G_IMMFIRST-4)
|
||||
#define G_SETOTHERMODE_H (G_IMMFIRST-5)
|
||||
#define G_SETOTHERMODE_L (G_IMMFIRST-6)
|
||||
#define G_POPMTX (G_IMMFIRST-2)
|
||||
#define G_MOVEWORD (G_IMMFIRST-3)
|
||||
#define G_TEXTURE (G_IMMFIRST-4)
|
||||
#define G_SETOTHERMODE_H (G_IMMFIRST-5)
|
||||
#define G_SETOTHERMODE_L (G_IMMFIRST-6)
|
||||
#define G_ENDDL (G_IMMFIRST-7)
|
||||
#define G_SETGEOMETRYMODE (G_IMMFIRST-8)
|
||||
#define G_CLEARGEOMETRYMODE (G_IMMFIRST-9)
|
||||
@@ -164,36 +164,36 @@
|
||||
#define G_SPRITE2D_DRAW (G_IMMFIRST-2)
|
||||
|
||||
/* RDP commands: */
|
||||
#define G_NOOP 0xc0 /* 0 */
|
||||
#define G_NOOP 0xc0 /* 0 */
|
||||
|
||||
#endif /* F3DEX_GBI_2 */
|
||||
#endif /* F3DEX_GBI_2 */
|
||||
|
||||
/* RDP commands: */
|
||||
#define G_SETCIMG 0xff /* -1 */
|
||||
#define G_SETZIMG 0xfe /* -2 */
|
||||
#define G_SETTIMG 0xfd /* -3 */
|
||||
#define G_SETCOMBINE 0xfc /* -4 */
|
||||
#define G_SETENVCOLOR 0xfb /* -5 */
|
||||
#define G_SETPRIMCOLOR 0xfa /* -6 */
|
||||
#define G_SETBLENDCOLOR 0xf9 /* -7 */
|
||||
#define G_SETFOGCOLOR 0xf8 /* -8 */
|
||||
#define G_SETFILLCOLOR 0xf7 /* -9 */
|
||||
#define G_FILLRECT 0xf6 /* -10 */
|
||||
#define G_SETTILE 0xf5 /* -11 */
|
||||
#define G_LOADTILE 0xf4 /* -12 */
|
||||
#define G_LOADBLOCK 0xf3 /* -13 */
|
||||
#define G_SETTILESIZE 0xf2 /* -14 */
|
||||
#define G_LOADTLUT 0xf0 /* -16 */
|
||||
#define G_RDPSETOTHERMODE 0xef /* -17 */
|
||||
#define G_SETPRIMDEPTH 0xee /* -18 */
|
||||
#define G_SETSCISSOR 0xed /* -19 */
|
||||
#define G_SETCONVERT 0xec /* -20 */
|
||||
#define G_SETKEYR 0xeb /* -21 */
|
||||
#define G_SETKEYGB 0xea /* -22 */
|
||||
#define G_RDPFULLSYNC 0xe9 /* -23 */
|
||||
#define G_RDPTILESYNC 0xe8 /* -24 */
|
||||
#define G_RDPPIPESYNC 0xe7 /* -25 */
|
||||
#define G_RDPLOADSYNC 0xe6 /* -26 */
|
||||
#define G_SETCIMG 0xff /* -1 */
|
||||
#define G_SETZIMG 0xfe /* -2 */
|
||||
#define G_SETTIMG 0xfd /* -3 */
|
||||
#define G_SETCOMBINE 0xfc /* -4 */
|
||||
#define G_SETENVCOLOR 0xfb /* -5 */
|
||||
#define G_SETPRIMCOLOR 0xfa /* -6 */
|
||||
#define G_SETBLENDCOLOR 0xf9 /* -7 */
|
||||
#define G_SETFOGCOLOR 0xf8 /* -8 */
|
||||
#define G_SETFILLCOLOR 0xf7 /* -9 */
|
||||
#define G_FILLRECT 0xf6 /* -10 */
|
||||
#define G_SETTILE 0xf5 /* -11 */
|
||||
#define G_LOADTILE 0xf4 /* -12 */
|
||||
#define G_LOADBLOCK 0xf3 /* -13 */
|
||||
#define G_SETTILESIZE 0xf2 /* -14 */
|
||||
#define G_LOADTLUT 0xf0 /* -16 */
|
||||
#define G_RDPSETOTHERMODE 0xef /* -17 */
|
||||
#define G_SETPRIMDEPTH 0xee /* -18 */
|
||||
#define G_SETSCISSOR 0xed /* -19 */
|
||||
#define G_SETCONVERT 0xec /* -20 */
|
||||
#define G_SETKEYR 0xeb /* -21 */
|
||||
#define G_SETKEYGB 0xea /* -22 */
|
||||
#define G_RDPFULLSYNC 0xe9 /* -23 */
|
||||
#define G_RDPTILESYNC 0xe8 /* -24 */
|
||||
#define G_RDPPIPESYNC 0xe7 /* -25 */
|
||||
#define G_RDPLOADSYNC 0xe6 /* -26 */
|
||||
#define G_TEXRECTFLIP 0xe5 /* -27 */
|
||||
#define G_TEXRECT 0xe4 /* -28 */
|
||||
|
||||
@@ -229,10 +229,10 @@
|
||||
*/
|
||||
|
||||
/* masks to build RDP triangle commands: */
|
||||
#define G_RDP_TRI_FILL_MASK 0x08
|
||||
#define G_RDP_TRI_SHADE_MASK 0x04
|
||||
#define G_RDP_TRI_TXTR_MASK 0x02
|
||||
#define G_RDP_TRI_ZBUFF_MASK 0x01
|
||||
#define G_RDP_TRI_FILL_MASK 0x08
|
||||
#define G_RDP_TRI_SHADE_MASK 0x04
|
||||
#define G_RDP_TRI_TXTR_MASK 0x02
|
||||
#define G_RDP_TRI_ZBUFF_MASK 0x01
|
||||
|
||||
/*
|
||||
* HACK:
|
||||
@@ -1485,7 +1485,7 @@ typedef struct {
|
||||
int cmd:8;
|
||||
unsigned int par:8;
|
||||
unsigned int len:16;
|
||||
unsigned int addr;
|
||||
uintptr_t addr;
|
||||
} Gdma;
|
||||
|
||||
/*
|
||||
@@ -1570,7 +1570,7 @@ typedef struct {
|
||||
unsigned int siz:2;
|
||||
unsigned int pad:7;
|
||||
unsigned int wd:12; /* really only 10 bits, extra */
|
||||
unsigned int dram; /* to account for 1024 */
|
||||
uintptr_t dram; /* to account for 1024 */
|
||||
} Gsetimg;
|
||||
|
||||
typedef struct {
|
||||
@@ -1667,16 +1667,21 @@ typedef struct {
|
||||
* Generic Gfx Packet
|
||||
*/
|
||||
typedef struct {
|
||||
unsigned int w0;
|
||||
unsigned int w1;
|
||||
uintptr_t w0;
|
||||
uintptr_t w1;
|
||||
} Gwords;
|
||||
|
||||
/*
|
||||
* This union is the fundamental type of the display list.
|
||||
* It is, by law, exactly 64 bits in size.
|
||||
*
|
||||
* (Edit: except on 64-bit, where it is exactly 128 bit. On little-endian or
|
||||
* 64-bit systems, only the 'words' member may be accessed; the rest of the
|
||||
* structs don't have matching layouts for now.)
|
||||
*/
|
||||
typedef union {
|
||||
Gwords words;
|
||||
#if !defined(__x86_64__) && !defined(__i386__)
|
||||
Gdma dma;
|
||||
Gtri tri;
|
||||
Gline3D line;
|
||||
@@ -1694,6 +1699,7 @@ typedef union {
|
||||
Gloadtile loadtile; /* use for loadblock also, th is dxt */
|
||||
Gsettilesize settilesize;
|
||||
Gloadtlut loadtlut;
|
||||
#endif
|
||||
long long int force_structure_alignment;
|
||||
} Gfx;
|
||||
|
||||
@@ -1709,12 +1715,12 @@ typedef union {
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
\
|
||||
_g->words.w0 = _SHIFTL((c), 24, 8) | _SHIFTL((l), 0, 24); \
|
||||
_g->words.w1 = (unsigned int)(s); \
|
||||
_g->words.w1 = (uintptr_t)(s); \
|
||||
}
|
||||
|
||||
#define gsDma0p(c, s, l) \
|
||||
{{ \
|
||||
_SHIFTL((c), 24, 8) | _SHIFTL((l), 0, 24), (unsigned int)(s) \
|
||||
_SHIFTL((c), 24, 8) | _SHIFTL((l), 0, 24), (uintptr_t)(s) \
|
||||
}}
|
||||
|
||||
#define gDma1p(pkt, c, s, l, p) \
|
||||
@@ -1723,14 +1729,14 @@ typedef union {
|
||||
\
|
||||
_g->words.w0 = (_SHIFTL((c), 24, 8) | _SHIFTL((p), 16, 8) | \
|
||||
_SHIFTL((l), 0, 16)); \
|
||||
_g->words.w1 = (unsigned int)(s); \
|
||||
_g->words.w1 = (uintptr_t)(s); \
|
||||
}
|
||||
|
||||
#define gsDma1p(c, s, l, p) \
|
||||
{{ \
|
||||
(_SHIFTL((c), 24, 8) | _SHIFTL((p), 16, 8) | \
|
||||
_SHIFTL((l), 0, 16)), \
|
||||
(unsigned int)(s) \
|
||||
(uintptr_t)(s) \
|
||||
}}
|
||||
|
||||
#define gDma2p(pkt, c, adrs, len, idx, ofs) \
|
||||
@@ -1738,13 +1744,13 @@ typedef union {
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = (_SHIFTL((c),24,8)|_SHIFTL(((len)-1)/8,19,5)| \
|
||||
_SHIFTL((ofs)/8,8,8)|_SHIFTL((idx),0,8)); \
|
||||
_g->words.w1 = (unsigned int)(adrs); \
|
||||
_g->words.w1 = (uintptr_t)(adrs); \
|
||||
}
|
||||
#define gsDma2p(c, adrs, len, idx, ofs) \
|
||||
{{ \
|
||||
(_SHIFTL((c),24,8)|_SHIFTL(((len)-1)/8,19,5)| \
|
||||
_SHIFTL((ofs)/8,8,8)|_SHIFTL((idx),0,8)), \
|
||||
(unsigned int)(adrs) \
|
||||
(uintptr_t)(adrs) \
|
||||
}}
|
||||
|
||||
#define gSPNoOp(pkt) gDma0p(pkt, G_SPNOOP, 0, 0)
|
||||
@@ -1775,12 +1781,12 @@ typedef union {
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = \
|
||||
_SHIFTL(G_VTX,24,8)|_SHIFTL((n),12,8)|_SHIFTL((v0)+(n),1,7); \
|
||||
_g->words.w1 = (unsigned int)(v); \
|
||||
_g->words.w1 = (uintptr_t)(v); \
|
||||
}
|
||||
# define gsSPVertex(v, n, v0) \
|
||||
{{ \
|
||||
(_SHIFTL(G_VTX,24,8)|_SHIFTL((n),12,8)|_SHIFTL((v0)+(n),1,7)), \
|
||||
(unsigned int)(v) \
|
||||
(uintptr_t)(v) \
|
||||
}}
|
||||
#elif (defined(F3DEX_GBI)||defined(F3DLP_GBI))
|
||||
/*
|
||||
@@ -1845,12 +1851,12 @@ typedef union {
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
\
|
||||
_g->words.w0 = _SHIFTL((c), 24, 8); \
|
||||
_g->words.w1 = (unsigned int)(p0); \
|
||||
_g->words.w1 = (uintptr_t)(p0); \
|
||||
}
|
||||
|
||||
#define gsImmp1(c, p0) \
|
||||
{{ \
|
||||
_SHIFTL((c), 24, 8), (unsigned int)(p0) \
|
||||
_SHIFTL((c), 24, 8), (uintptr_t)(p0) \
|
||||
}}
|
||||
|
||||
#define gImmp2(pkt, c, p0, p1) \
|
||||
@@ -1887,13 +1893,13 @@ typedef union {
|
||||
\
|
||||
_g->words.w0 = (_SHIFTL((c), 24, 8) | _SHIFTL((p0), 8, 16) | \
|
||||
_SHIFTL((p1), 0, 8)); \
|
||||
_g->words.w1 = (unsigned int) (dat); \
|
||||
_g->words.w1 = (uintptr_t) (dat); \
|
||||
}
|
||||
|
||||
#define gsImmp21(c, p0, p1, dat) \
|
||||
{{ \
|
||||
_SHIFTL((c), 24, 8) | _SHIFTL((p0), 8, 16) | _SHIFTL((p1), 0, 8),\
|
||||
(unsigned int) (dat) \
|
||||
(uintptr_t) (dat) \
|
||||
}}
|
||||
|
||||
#ifdef F3DEX_GBI_2
|
||||
@@ -2332,7 +2338,7 @@ typedef union {
|
||||
{ \
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = _SHIFTL(G_RDPHALF_1,24,8); \
|
||||
_g->words.w1 = (unsigned int)(dl); \
|
||||
_g->words.w1 = (uintptr_t)(dl); \
|
||||
_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = (_SHIFTL(G_BRANCH_Z,24,8)| \
|
||||
_SHIFTL((vtx)*5,12,12)|_SHIFTL((vtx)*2,0,12)); \
|
||||
@@ -2341,7 +2347,7 @@ typedef union {
|
||||
|
||||
#define gsSPBranchLessZrg(dl, vtx, zval, near, far, flag, zmin, zmax) \
|
||||
{{ _SHIFTL(G_RDPHALF_1,24,8), \
|
||||
(unsigned int)(dl), }}, \
|
||||
(uintptr_t)(dl), }}, \
|
||||
{{ _SHIFTL(G_BRANCH_Z,24,8)|_SHIFTL((vtx)*5,12,12)|_SHIFTL((vtx)*2,0,12),\
|
||||
G_DEPTOZSrg(zval, near, far, flag, zmin, zmax), }}
|
||||
|
||||
@@ -2361,7 +2367,7 @@ typedef union {
|
||||
{ \
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = _SHIFTL(G_RDPHALF_1,24,8); \
|
||||
_g->words.w1 = (unsigned int)(dl); \
|
||||
_g->words.w1 = (uintptr_t)(dl); \
|
||||
_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = (_SHIFTL(G_BRANCH_Z,24,8)| \
|
||||
_SHIFTL((vtx)*5,12,12)|_SHIFTL((vtx)*2,0,12)); \
|
||||
@@ -2370,7 +2376,7 @@ typedef union {
|
||||
|
||||
#define gsSPBranchLessZraw(dl, vtx, zval) \
|
||||
{{ _SHIFTL(G_RDPHALF_1,24,8), \
|
||||
(unsigned int)(dl), }}, \
|
||||
(uintptr_t)(dl), }}, \
|
||||
{{ _SHIFTL(G_BRANCH_Z,24,8)|_SHIFTL((vtx)*5,12,12)|_SHIFTL((vtx)*2,0,12),\
|
||||
(unsigned int)(zval), }}
|
||||
|
||||
@@ -2384,19 +2390,19 @@ typedef union {
|
||||
{ \
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = _SHIFTL(G_RDPHALF_1,24,8); \
|
||||
_g->words.w1 = (unsigned int)(uc_dstart); \
|
||||
_g->words.w1 = (uintptr_t)(uc_dstart); \
|
||||
_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = (_SHIFTL(G_LOAD_UCODE,24,8)| \
|
||||
_SHIFTL((int)(uc_dsize)-1,0,16)); \
|
||||
_g->words.w1 = (unsigned int)(uc_start); \
|
||||
_g->words.w1 = (uintptr_t)(uc_start); \
|
||||
}
|
||||
|
||||
#define gsSPLoadUcodeEx(uc_start, uc_dstart, uc_dsize) \
|
||||
{{ _SHIFTL(G_RDPHALF_1,24,8), \
|
||||
(unsigned int)(uc_dstart), }}, \
|
||||
(uintptr_t)(uc_dstart), }}, \
|
||||
{{ _SHIFTL(G_LOAD_UCODE,24,8)| \
|
||||
_SHIFTL((int)(uc_dsize)-1,0,16), \
|
||||
(unsigned int)(uc_start), }}
|
||||
(uintptr_t)(uc_start), }}
|
||||
|
||||
#define gSPLoadUcode(pkt, uc_start, uc_dstart) \
|
||||
gSPLoadUcodeEx((pkt), (uc_start), (uc_dstart), SP_UCODE_DATA_SIZE)
|
||||
@@ -2420,14 +2426,14 @@ typedef union {
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = _SHIFTL(G_DMA_IO,24,8)|_SHIFTL((flag),23,1)| \
|
||||
_SHIFTL((dmem)/8,13,10)|_SHIFTL((size)-1,0,12); \
|
||||
_g->words.w1 = (unsigned int)(dram); \
|
||||
_g->words.w1 = (uintptr_t)(dram); \
|
||||
}
|
||||
|
||||
#define gsSPDma_io(flag, dmem, dram, size) \
|
||||
{{ \
|
||||
_SHIFTL(G_DMA_IO,24,8)|_SHIFTL((flag),23,1)| \
|
||||
_SHIFTL((dmem)/8,13,10)|_SHIFTL((size)-1,0,12), \
|
||||
(unsigned int)(dram) \
|
||||
(uintptr_t)(dram) \
|
||||
}}
|
||||
|
||||
#define gSPDmaRead(pkt,dmem,dram,size) gSPDma_io((pkt),0,(dmem),(dram),(size))
|
||||
@@ -3000,14 +3006,14 @@ typedef union {
|
||||
\
|
||||
_g->words.w0 = _SHIFTL(cmd, 24, 8) | _SHIFTL(fmt, 21, 3) | \
|
||||
_SHIFTL(siz, 19, 2) | _SHIFTL((width)-1, 0, 12); \
|
||||
_g->words.w1 = (unsigned int)(i); \
|
||||
_g->words.w1 = (uintptr_t)(i); \
|
||||
}
|
||||
|
||||
#define gsSetImage(cmd, fmt, siz, width, i) \
|
||||
{{ \
|
||||
_SHIFTL(cmd, 24, 8) | _SHIFTL(fmt, 21, 3) | \
|
||||
_SHIFTL(siz, 19, 2) | _SHIFTL((width)-1, 0, 12), \
|
||||
(unsigned int)(i) \
|
||||
(uintptr_t)(i) \
|
||||
}}
|
||||
|
||||
#define gDPSetColorImage(pkt, f, s, w, i) gSetImage(pkt, G_SETCIMG, f, s, w, i)
|
||||
@@ -4542,15 +4548,15 @@ typedef union {
|
||||
}
|
||||
|
||||
#define gsDPWord(wordhi, wordlo) \
|
||||
gsImmp1(G_RDPHALF_1, (unsigned int)(wordhi)), \
|
||||
gsImmp1(G_RDPHALF_2, (unsigned int)(wordlo))
|
||||
gsImmp1(G_RDPHALF_1, (uintptr_t)(wordhi)), \
|
||||
gsImmp1(G_RDPHALF_2, (uintptr_t)(wordlo))
|
||||
|
||||
#define gDPWord(pkt, wordhi, wordlo) \
|
||||
{ \
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
\
|
||||
gImmp1(pkt, G_RDPHALF_1, (unsigned int)(wordhi)); \
|
||||
gImmp1(pkt, G_RDPHALF_2, (unsigned int)(wordlo)); \
|
||||
gImmp1(pkt, G_RDPHALF_1, (uintptr_t)(wordhi)); \
|
||||
gImmp1(pkt, G_RDPHALF_2, (uintptr_t)(wordlo)); \
|
||||
}
|
||||
|
||||
#define gDPFullSync(pkt) gDPNoParam(pkt, G_RDPFULLSYNC)
|
||||
|
||||
@@ -10,13 +10,19 @@
|
||||
|
||||
/* Macros */
|
||||
|
||||
.macro bytes4 byte1, byte2, byte3, byte4
|
||||
.word ((\byte1 & 0xFF) << 24) | ((\byte2 & 0xFF) << 16) | ((\byte3 & 0xFF) << 8) | (\byte4 & 0xFF)
|
||||
.endm
|
||||
|
||||
/* commands with no parameters */
|
||||
.macro f3d_noparam cmd
|
||||
.word (\cmd << 24), 0x00000000
|
||||
.word (\cmd << 24)
|
||||
.word 0
|
||||
.endm
|
||||
|
||||
.macro gsImmp1 cmd, param
|
||||
.word (\cmd << 24), \param
|
||||
.word (\cmd << 24)
|
||||
.word \param
|
||||
.endm
|
||||
|
||||
/* DMA helper */
|
||||
@@ -27,14 +33,14 @@
|
||||
|
||||
/* DMA helper 3*/
|
||||
.macro gsDma3p cmd, byte2, byte3, byte4, segAddr
|
||||
.byte \cmd, \byte2, \byte3, \byte4
|
||||
bytes4 \cmd, \byte2, \byte3, \byte4
|
||||
.word \segAddr
|
||||
.endm
|
||||
|
||||
/* Helper for RGBA colors. */
|
||||
.macro sDPRGBColor cmd r, g, b, a
|
||||
.word \cmd << 24
|
||||
.byte \r, \g, \b, \a
|
||||
bytes4 \r, \g, \b, \a
|
||||
.endm
|
||||
|
||||
/* Opcodes */
|
||||
@@ -667,7 +673,7 @@
|
||||
.word (\v0*10 << 16) | (\v1*10 << 8) | \v2*10
|
||||
.endif
|
||||
.else /* Fast3DEX2 */
|
||||
.byte G_TRI1, \v0*2, \v1*2, \v2*2
|
||||
bytes4 G_TRI1, \v0*2, \v1*2, \v2*2
|
||||
.word 0
|
||||
.endif
|
||||
.endm
|
||||
|
||||
@@ -53,8 +53,8 @@ typedef union
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned int w0;
|
||||
unsigned int w1;
|
||||
uintptr_t w0;
|
||||
uintptr_t w1;
|
||||
} Gwords;
|
||||
|
||||
/* TODO: fill in the rest of the members */
|
||||
@@ -258,35 +258,35 @@ typedef union
|
||||
|
||||
/* G_SETOTHERMODE_L render modes */
|
||||
|
||||
#define AA_EN 0x8
|
||||
#define Z_CMP 0x10
|
||||
#define Z_UPD 0x20
|
||||
#define IM_RD 0x40
|
||||
#define CLR_ON_CVG 0x80
|
||||
#define CVG_DST_CLAMP 0
|
||||
#define CVG_DST_WRAP 0x100
|
||||
#define CVG_DST_FULL 0x200
|
||||
#define CVG_DST_SAVE 0x300
|
||||
#define ZMODE_OPA 0
|
||||
#define ZMODE_INTER 0x400
|
||||
#define ZMODE_XLU 0x800
|
||||
#define ZMODE_DEC 0xc00
|
||||
#define CVG_X_ALPHA 0x1000
|
||||
#define ALPHA_CVG_SEL 0x2000
|
||||
#define FORCE_BL 0x4000
|
||||
#define TEX_EDGE 0x0000
|
||||
#define AA_EN 0x8
|
||||
#define Z_CMP 0x10
|
||||
#define Z_UPD 0x20
|
||||
#define IM_RD 0x40
|
||||
#define CLR_ON_CVG 0x80
|
||||
#define CVG_DST_CLAMP 0
|
||||
#define CVG_DST_WRAP 0x100
|
||||
#define CVG_DST_FULL 0x200
|
||||
#define CVG_DST_SAVE 0x300
|
||||
#define ZMODE_OPA 0
|
||||
#define ZMODE_INTER 0x400
|
||||
#define ZMODE_XLU 0x800
|
||||
#define ZMODE_DEC 0xc00
|
||||
#define CVG_X_ALPHA 0x1000
|
||||
#define ALPHA_CVG_SEL 0x2000
|
||||
#define FORCE_BL 0x4000
|
||||
#define TEX_EDGE 0x0000
|
||||
|
||||
#define G_BL_CLR_IN 0
|
||||
#define G_BL_CLR_MEM 1
|
||||
#define G_BL_CLR_BL 2
|
||||
#define G_BL_CLR_FOG 3
|
||||
#define G_BL_1MA 0
|
||||
#define G_BL_A_MEM 1
|
||||
#define G_BL_A_IN 0
|
||||
#define G_BL_A_FOG 1
|
||||
#define G_BL_A_SHADE 2
|
||||
#define G_BL_1 2
|
||||
#define G_BL_0 3
|
||||
#define G_BL_CLR_IN 0
|
||||
#define G_BL_CLR_MEM 1
|
||||
#define G_BL_CLR_BL 2
|
||||
#define G_BL_CLR_FOG 3
|
||||
#define G_BL_1MA 0
|
||||
#define G_BL_A_MEM 1
|
||||
#define G_BL_A_IN 0
|
||||
#define G_BL_A_FOG 1
|
||||
#define G_BL_A_SHADE 2
|
||||
#define G_BL_1 2
|
||||
#define G_BL_0 3
|
||||
|
||||
#define GBL_c1(m1a, m1b, m2a, m2b) \
|
||||
(m1a) << 30 | (m1b) << 26 | (m2a) << 22 | (m2b) << 18
|
||||
@@ -511,93 +511,93 @@ typedef union
|
||||
|
||||
|
||||
|
||||
#define G_RM_AA_ZB_OPA_SURF RM_AA_ZB_OPA_SURF(1)
|
||||
#define G_RM_AA_ZB_OPA_SURF2 RM_AA_ZB_OPA_SURF(2)
|
||||
#define G_RM_AA_ZB_XLU_SURF RM_AA_ZB_XLU_SURF(1)
|
||||
#define G_RM_AA_ZB_XLU_SURF2 RM_AA_ZB_XLU_SURF(2)
|
||||
#define G_RM_AA_ZB_OPA_DECAL RM_AA_ZB_OPA_DECAL(1)
|
||||
#define G_RM_AA_ZB_OPA_DECAL2 RM_AA_ZB_OPA_DECAL(2)
|
||||
#define G_RM_AA_ZB_XLU_DECAL RM_AA_ZB_XLU_DECAL(1)
|
||||
#define G_RM_AA_ZB_XLU_DECAL2 RM_AA_ZB_XLU_DECAL(2)
|
||||
#define G_RM_AA_ZB_OPA_INTER RM_AA_ZB_OPA_INTER(1)
|
||||
#define G_RM_AA_ZB_OPA_INTER2 RM_AA_ZB_OPA_INTER(2)
|
||||
#define G_RM_AA_ZB_XLU_INTER RM_AA_ZB_XLU_INTER(1)
|
||||
#define G_RM_AA_ZB_XLU_INTER2 RM_AA_ZB_XLU_INTER(2)
|
||||
#define G_RM_AA_ZB_XLU_LINE RM_AA_ZB_XLU_LINE(1)
|
||||
#define G_RM_AA_ZB_XLU_LINE2 RM_AA_ZB_XLU_LINE(2)
|
||||
#define G_RM_AA_ZB_DEC_LINE RM_AA_ZB_DEC_LINE(1)
|
||||
#define G_RM_AA_ZB_DEC_LINE2 RM_AA_ZB_DEC_LINE(2)
|
||||
#define G_RM_AA_ZB_TEX_EDGE RM_AA_ZB_TEX_EDGE(1)
|
||||
#define G_RM_AA_ZB_TEX_EDGE2 RM_AA_ZB_TEX_EDGE(2)
|
||||
#define G_RM_AA_ZB_TEX_INTER RM_AA_ZB_TEX_INTER(1)
|
||||
#define G_RM_AA_ZB_TEX_INTER2 RM_AA_ZB_TEX_INTER(2)
|
||||
#define G_RM_AA_ZB_SUB_SURF RM_AA_ZB_SUB_SURF(1)
|
||||
#define G_RM_AA_ZB_SUB_SURF2 RM_AA_ZB_SUB_SURF(2)
|
||||
#define G_RM_AA_ZB_PCL_SURF RM_AA_ZB_PCL_SURF(1)
|
||||
#define G_RM_AA_ZB_PCL_SURF2 RM_AA_ZB_PCL_SURF(2)
|
||||
#define G_RM_AA_ZB_OPA_TERR RM_AA_ZB_OPA_TERR(1)
|
||||
#define G_RM_AA_ZB_OPA_TERR2 RM_AA_ZB_OPA_TERR(2)
|
||||
#define G_RM_AA_ZB_TEX_TERR RM_AA_ZB_TEX_TERR(1)
|
||||
#define G_RM_AA_ZB_TEX_TERR2 RM_AA_ZB_TEX_TERR(2)
|
||||
#define G_RM_AA_ZB_SUB_TERR RM_AA_ZB_SUB_TERR(1)
|
||||
#define G_RM_AA_ZB_SUB_TERR2 RM_AA_ZB_SUB_TERR(2)
|
||||
#define G_RM_AA_ZB_OPA_SURF RM_AA_ZB_OPA_SURF(1)
|
||||
#define G_RM_AA_ZB_OPA_SURF2 RM_AA_ZB_OPA_SURF(2)
|
||||
#define G_RM_AA_ZB_XLU_SURF RM_AA_ZB_XLU_SURF(1)
|
||||
#define G_RM_AA_ZB_XLU_SURF2 RM_AA_ZB_XLU_SURF(2)
|
||||
#define G_RM_AA_ZB_OPA_DECAL RM_AA_ZB_OPA_DECAL(1)
|
||||
#define G_RM_AA_ZB_OPA_DECAL2 RM_AA_ZB_OPA_DECAL(2)
|
||||
#define G_RM_AA_ZB_XLU_DECAL RM_AA_ZB_XLU_DECAL(1)
|
||||
#define G_RM_AA_ZB_XLU_DECAL2 RM_AA_ZB_XLU_DECAL(2)
|
||||
#define G_RM_AA_ZB_OPA_INTER RM_AA_ZB_OPA_INTER(1)
|
||||
#define G_RM_AA_ZB_OPA_INTER2 RM_AA_ZB_OPA_INTER(2)
|
||||
#define G_RM_AA_ZB_XLU_INTER RM_AA_ZB_XLU_INTER(1)
|
||||
#define G_RM_AA_ZB_XLU_INTER2 RM_AA_ZB_XLU_INTER(2)
|
||||
#define G_RM_AA_ZB_XLU_LINE RM_AA_ZB_XLU_LINE(1)
|
||||
#define G_RM_AA_ZB_XLU_LINE2 RM_AA_ZB_XLU_LINE(2)
|
||||
#define G_RM_AA_ZB_DEC_LINE RM_AA_ZB_DEC_LINE(1)
|
||||
#define G_RM_AA_ZB_DEC_LINE2 RM_AA_ZB_DEC_LINE(2)
|
||||
#define G_RM_AA_ZB_TEX_EDGE RM_AA_ZB_TEX_EDGE(1)
|
||||
#define G_RM_AA_ZB_TEX_EDGE2 RM_AA_ZB_TEX_EDGE(2)
|
||||
#define G_RM_AA_ZB_TEX_INTER RM_AA_ZB_TEX_INTER(1)
|
||||
#define G_RM_AA_ZB_TEX_INTER2 RM_AA_ZB_TEX_INTER(2)
|
||||
#define G_RM_AA_ZB_SUB_SURF RM_AA_ZB_SUB_SURF(1)
|
||||
#define G_RM_AA_ZB_SUB_SURF2 RM_AA_ZB_SUB_SURF(2)
|
||||
#define G_RM_AA_ZB_PCL_SURF RM_AA_ZB_PCL_SURF(1)
|
||||
#define G_RM_AA_ZB_PCL_SURF2 RM_AA_ZB_PCL_SURF(2)
|
||||
#define G_RM_AA_ZB_OPA_TERR RM_AA_ZB_OPA_TERR(1)
|
||||
#define G_RM_AA_ZB_OPA_TERR2 RM_AA_ZB_OPA_TERR(2)
|
||||
#define G_RM_AA_ZB_TEX_TERR RM_AA_ZB_TEX_TERR(1)
|
||||
#define G_RM_AA_ZB_TEX_TERR2 RM_AA_ZB_TEX_TERR(2)
|
||||
#define G_RM_AA_ZB_SUB_TERR RM_AA_ZB_SUB_TERR(1)
|
||||
#define G_RM_AA_ZB_SUB_TERR2 RM_AA_ZB_SUB_TERR(2)
|
||||
|
||||
#define G_RM_RA_ZB_OPA_SURF RM_RA_ZB_OPA_SURF(1)
|
||||
#define G_RM_RA_ZB_OPA_SURF2 RM_RA_ZB_OPA_SURF(2)
|
||||
#define G_RM_RA_ZB_OPA_DECAL RM_RA_ZB_OPA_DECAL(1)
|
||||
#define G_RM_RA_ZB_OPA_DECAL2 RM_RA_ZB_OPA_DECAL(2)
|
||||
#define G_RM_RA_ZB_OPA_INTER RM_RA_ZB_OPA_INTER(1)
|
||||
#define G_RM_RA_ZB_OPA_INTER2 RM_RA_ZB_OPA_INTER(2)
|
||||
#define G_RM_RA_ZB_OPA_SURF RM_RA_ZB_OPA_SURF(1)
|
||||
#define G_RM_RA_ZB_OPA_SURF2 RM_RA_ZB_OPA_SURF(2)
|
||||
#define G_RM_RA_ZB_OPA_DECAL RM_RA_ZB_OPA_DECAL(1)
|
||||
#define G_RM_RA_ZB_OPA_DECAL2 RM_RA_ZB_OPA_DECAL(2)
|
||||
#define G_RM_RA_ZB_OPA_INTER RM_RA_ZB_OPA_INTER(1)
|
||||
#define G_RM_RA_ZB_OPA_INTER2 RM_RA_ZB_OPA_INTER(2)
|
||||
|
||||
#define G_RM_AA_OPA_SURF RM_AA_OPA_SURF(1)
|
||||
#define G_RM_AA_OPA_SURF2 RM_AA_OPA_SURF(2)
|
||||
#define G_RM_AA_XLU_SURF RM_AA_XLU_SURF(1)
|
||||
#define G_RM_AA_XLU_SURF2 RM_AA_XLU_SURF(2)
|
||||
#define G_RM_AA_XLU_LINE RM_AA_XLU_LINE(1)
|
||||
#define G_RM_AA_XLU_LINE2 RM_AA_XLU_LINE(2)
|
||||
#define G_RM_AA_DEC_LINE RM_AA_DEC_LINE(1)
|
||||
#define G_RM_AA_DEC_LINE2 RM_AA_DEC_LINE(2)
|
||||
#define G_RM_AA_TEX_EDGE RM_AA_TEX_EDGE(1)
|
||||
#define G_RM_AA_TEX_EDGE2 RM_AA_TEX_EDGE(2)
|
||||
#define G_RM_AA_SUB_SURF RM_AA_SUB_SURF(1)
|
||||
#define G_RM_AA_SUB_SURF2 RM_AA_SUB_SURF(2)
|
||||
#define G_RM_AA_PCL_SURF RM_AA_PCL_SURF(1)
|
||||
#define G_RM_AA_PCL_SURF2 RM_AA_PCL_SURF(2)
|
||||
#define G_RM_AA_OPA_TERR RM_AA_OPA_TERR(1)
|
||||
#define G_RM_AA_OPA_TERR2 RM_AA_OPA_TERR(2)
|
||||
#define G_RM_AA_TEX_TERR RM_AA_TEX_TERR(1)
|
||||
#define G_RM_AA_TEX_TERR2 RM_AA_TEX_TERR(2)
|
||||
#define G_RM_AA_SUB_TERR RM_AA_SUB_TERR(1)
|
||||
#define G_RM_AA_SUB_TERR2 RM_AA_SUB_TERR(2)
|
||||
#define G_RM_AA_OPA_SURF RM_AA_OPA_SURF(1)
|
||||
#define G_RM_AA_OPA_SURF2 RM_AA_OPA_SURF(2)
|
||||
#define G_RM_AA_XLU_SURF RM_AA_XLU_SURF(1)
|
||||
#define G_RM_AA_XLU_SURF2 RM_AA_XLU_SURF(2)
|
||||
#define G_RM_AA_XLU_LINE RM_AA_XLU_LINE(1)
|
||||
#define G_RM_AA_XLU_LINE2 RM_AA_XLU_LINE(2)
|
||||
#define G_RM_AA_DEC_LINE RM_AA_DEC_LINE(1)
|
||||
#define G_RM_AA_DEC_LINE2 RM_AA_DEC_LINE(2)
|
||||
#define G_RM_AA_TEX_EDGE RM_AA_TEX_EDGE(1)
|
||||
#define G_RM_AA_TEX_EDGE2 RM_AA_TEX_EDGE(2)
|
||||
#define G_RM_AA_SUB_SURF RM_AA_SUB_SURF(1)
|
||||
#define G_RM_AA_SUB_SURF2 RM_AA_SUB_SURF(2)
|
||||
#define G_RM_AA_PCL_SURF RM_AA_PCL_SURF(1)
|
||||
#define G_RM_AA_PCL_SURF2 RM_AA_PCL_SURF(2)
|
||||
#define G_RM_AA_OPA_TERR RM_AA_OPA_TERR(1)
|
||||
#define G_RM_AA_OPA_TERR2 RM_AA_OPA_TERR(2)
|
||||
#define G_RM_AA_TEX_TERR RM_AA_TEX_TERR(1)
|
||||
#define G_RM_AA_TEX_TERR2 RM_AA_TEX_TERR(2)
|
||||
#define G_RM_AA_SUB_TERR RM_AA_SUB_TERR(1)
|
||||
#define G_RM_AA_SUB_TERR2 RM_AA_SUB_TERR(2)
|
||||
|
||||
#define G_RM_RA_OPA_SURF RM_RA_OPA_SURF(1)
|
||||
#define G_RM_RA_OPA_SURF2 RM_RA_OPA_SURF(2)
|
||||
#define G_RM_RA_OPA_SURF RM_RA_OPA_SURF(1)
|
||||
#define G_RM_RA_OPA_SURF2 RM_RA_OPA_SURF(2)
|
||||
|
||||
#define G_RM_ZB_OPA_SURF RM_ZB_OPA_SURF(1)
|
||||
#define G_RM_ZB_OPA_SURF2 RM_ZB_OPA_SURF(2)
|
||||
#define G_RM_ZB_XLU_SURF RM_ZB_XLU_SURF(1)
|
||||
#define G_RM_ZB_XLU_SURF2 RM_ZB_XLU_SURF(2)
|
||||
#define G_RM_ZB_OPA_DECAL RM_ZB_OPA_DECAL(1)
|
||||
#define G_RM_ZB_OPA_DECAL2 RM_ZB_OPA_DECAL(2)
|
||||
#define G_RM_ZB_XLU_DECAL RM_ZB_XLU_DECAL(1)
|
||||
#define G_RM_ZB_XLU_DECAL2 RM_ZB_XLU_DECAL(2)
|
||||
#define G_RM_ZB_CLD_SURF RM_ZB_CLD_SURF(1)
|
||||
#define G_RM_ZB_CLD_SURF2 RM_ZB_CLD_SURF(2)
|
||||
#define G_RM_ZB_OVL_SURF RM_ZB_OVL_SURF(1)
|
||||
#define G_RM_ZB_OVL_SURF2 RM_ZB_OVL_SURF(2)
|
||||
#define G_RM_ZB_PCL_SURF RM_ZB_PCL_SURF(1)
|
||||
#define G_RM_ZB_PCL_SURF2 RM_ZB_PCL_SURF(2)
|
||||
#define G_RM_ZB_OPA_SURF RM_ZB_OPA_SURF(1)
|
||||
#define G_RM_ZB_OPA_SURF2 RM_ZB_OPA_SURF(2)
|
||||
#define G_RM_ZB_XLU_SURF RM_ZB_XLU_SURF(1)
|
||||
#define G_RM_ZB_XLU_SURF2 RM_ZB_XLU_SURF(2)
|
||||
#define G_RM_ZB_OPA_DECAL RM_ZB_OPA_DECAL(1)
|
||||
#define G_RM_ZB_OPA_DECAL2 RM_ZB_OPA_DECAL(2)
|
||||
#define G_RM_ZB_XLU_DECAL RM_ZB_XLU_DECAL(1)
|
||||
#define G_RM_ZB_XLU_DECAL2 RM_ZB_XLU_DECAL(2)
|
||||
#define G_RM_ZB_CLD_SURF RM_ZB_CLD_SURF(1)
|
||||
#define G_RM_ZB_CLD_SURF2 RM_ZB_CLD_SURF(2)
|
||||
#define G_RM_ZB_OVL_SURF RM_ZB_OVL_SURF(1)
|
||||
#define G_RM_ZB_OVL_SURF2 RM_ZB_OVL_SURF(2)
|
||||
#define G_RM_ZB_PCL_SURF RM_ZB_PCL_SURF(1)
|
||||
#define G_RM_ZB_PCL_SURF2 RM_ZB_PCL_SURF(2)
|
||||
|
||||
#define G_RM_OPA_SURF RM_OPA_SURF(1)
|
||||
#define G_RM_OPA_SURF2 RM_OPA_SURF(2)
|
||||
#define G_RM_XLU_SURF RM_XLU_SURF(1)
|
||||
#define G_RM_XLU_SURF2 RM_XLU_SURF(2)
|
||||
#define G_RM_CLD_SURF RM_CLD_SURF(1)
|
||||
#define G_RM_CLD_SURF2 RM_CLD_SURF(2)
|
||||
#define G_RM_TEX_EDGE RM_TEX_EDGE(1)
|
||||
#define G_RM_TEX_EDGE2 RM_TEX_EDGE(2)
|
||||
#define G_RM_PCL_SURF RM_PCL_SURF(1)
|
||||
#define G_RM_PCL_SURF2 RM_PCL_SURF(2)
|
||||
#define G_RM_OPA_SURF RM_OPA_SURF(1)
|
||||
#define G_RM_OPA_SURF2 RM_OPA_SURF(2)
|
||||
#define G_RM_XLU_SURF RM_XLU_SURF(1)
|
||||
#define G_RM_XLU_SURF2 RM_XLU_SURF(2)
|
||||
#define G_RM_CLD_SURF RM_CLD_SURF(1)
|
||||
#define G_RM_CLD_SURF2 RM_CLD_SURF(2)
|
||||
#define G_RM_TEX_EDGE RM_TEX_EDGE(1)
|
||||
#define G_RM_TEX_EDGE2 RM_TEX_EDGE(2)
|
||||
#define G_RM_PCL_SURF RM_PCL_SURF(1)
|
||||
#define G_RM_PCL_SURF2 RM_PCL_SURF(2)
|
||||
#define G_RM_ADD RM_ADD(1)
|
||||
#define G_RM_ADD2 RM_ADD(2)
|
||||
#define G_RM_NOOP RM_NOOP(1)
|
||||
@@ -608,14 +608,14 @@ typedef union
|
||||
#define G_RM_OPA_CI2 RM_OPA_CI(2)
|
||||
|
||||
|
||||
#define G_RM_FOG_SHADE_A GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA)
|
||||
#define G_RM_FOG_PRIM_A GBL_c1(G_BL_CLR_FOG, G_BL_A_FOG, G_BL_CLR_IN, G_BL_1MA)
|
||||
#define G_RM_PASS GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1)
|
||||
#define G_RM_FOG_SHADE_A GBL_c1(G_BL_CLR_FOG, G_BL_A_SHADE, G_BL_CLR_IN, G_BL_1MA)
|
||||
#define G_RM_FOG_PRIM_A GBL_c1(G_BL_CLR_FOG, G_BL_A_FOG, G_BL_CLR_IN, G_BL_1MA)
|
||||
#define G_RM_PASS GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1)
|
||||
|
||||
#define G_MWO_NUMLIGHT 0x00
|
||||
#define G_MW_NUMLIGHT 0x02
|
||||
#define NUML(n) (((n)+1)*32 + 0x80000000)
|
||||
#define G_MW_PERSPNORM 0x0e
|
||||
#define G_MW_PERSPNORM 0x0e
|
||||
|
||||
#ifndef MAX
|
||||
#define MAX(a, b) ((a) > (b) ? (a) : (b))
|
||||
@@ -630,16 +630,16 @@ typedef union
|
||||
#define gDma1p(pkt, c, s, l, p) \
|
||||
{ \
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = (_SHIFTL((c), 24, 8) | _SHIFTL((p), 16, 8) | \
|
||||
_SHIFTL((l), 0, 16)); \
|
||||
_g->words.w1 = (unsigned int)(s); \
|
||||
_g->words.w0 = (_SHIFTL((c), 24, 8) | _SHIFTL((p), 16, 8) \
|
||||
| _SHIFTL((l), 0, 16)); \
|
||||
_g->words.w1 = (uintptr_t)(s); \
|
||||
}
|
||||
|
||||
#define gsDma1p(c, s, l, p) \
|
||||
{ \
|
||||
_g->words.w0 = (_SHIFTL((c), 24, 8) | _SHIFTL((p), 16, 8) | \
|
||||
_SHIFTL((l), 0, 16)); \
|
||||
_g->words.w1 = (unsigned int)(s); \
|
||||
_g->words.w0 = (_SHIFTL((c), 24, 8) | _SHIFTL((p), 16, 8) \
|
||||
| _SHIFTL((l), 0, 16)); \
|
||||
_g->words.w1 = (uintptr_t)(s); \
|
||||
}
|
||||
|
||||
/* Matrix */
|
||||
@@ -650,7 +650,7 @@ typedef union
|
||||
_g->words.w0 = _SHIFTL(G_MTX, 24, 8) \
|
||||
| _SHIFTL((p), 16, 8) \
|
||||
| _SHIFTL(sizeof(Mtx), 0, 16); \
|
||||
_g->words.w1 = (u32)(m); \
|
||||
_g->words.w1 = (uintptr_t)(m); \
|
||||
}
|
||||
|
||||
#define gsSPMatrix(m, p) \
|
||||
@@ -658,7 +658,7 @@ typedef union
|
||||
_g->words.w0 = _SHIFTL(G_MTX, 24, 8) \
|
||||
| _SHIFTL((p), 16, 8) \
|
||||
| _SHIFTL(sizeof(Mtx), 0, 16); \
|
||||
_g->words.w1 = (u32)(m); \
|
||||
_g->words.w1 = (uintptr_t)(m); \
|
||||
}
|
||||
|
||||
/* Vertex */
|
||||
@@ -671,7 +671,7 @@ typedef union
|
||||
_g->words.w0 = _SHIFTL(G_VTX, 24, 8) \
|
||||
| _SHIFTL(((n)-1) << 4 | (v0), 16, 8) \
|
||||
| _SHIFTL(sizeof(Vtx)*(n), 0, 16); \
|
||||
_g->words.w1 = (u32)(v); \
|
||||
_g->words.w1 = (uintptr_t)(v); \
|
||||
}
|
||||
|
||||
#define gsSPVertex(v, n, v0) \
|
||||
@@ -679,7 +679,7 @@ typedef union
|
||||
_g->words.w0 = _SHIFTL(G_VTX, 24, 8) \
|
||||
| _SHIFTL(((n)-1) << 4 | (v0), 16, 8) \
|
||||
| _SHIFTL(sizeof(Vtx)*(n), 0, 16); \
|
||||
_g->words.w1 = (u32)(v); \
|
||||
_g->words.w1 = (uintptr_t)(v); \
|
||||
}
|
||||
|
||||
#else /* Fast3DEX */
|
||||
@@ -689,7 +689,7 @@ typedef union
|
||||
_g->words.w0 = _SHIFTL(G_VTX, 24, 8) \
|
||||
| _SHIFTL(((v0)*2), 16, 8) \
|
||||
| _SHIFTL((n << 10) | ((sizeof(Vtx)*(n))-1), 0, 16); \
|
||||
_g->words.w1 = (u32)(v); \
|
||||
_g->words.w1 = (uintptr_t)(v); \
|
||||
}
|
||||
|
||||
#define gsSPVertex(v, n, v0) \
|
||||
@@ -697,7 +697,7 @@ typedef union
|
||||
_g->words.w0 = _SHIFTL(G_VTX, 24, 8) \
|
||||
| _SHIFTL(((v0)*2), 16, 8) \
|
||||
| _SHIFTL((n << 10) | ((sizeof(Vtx)*(n))-1), 0, 16); \
|
||||
_g->words.w1 = (u32)(v); \
|
||||
_g->words.w1 = (uintptr_t)(v); \
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -767,13 +767,13 @@ typedef union
|
||||
{ \
|
||||
Gfx *_g = (Gfx *) (pkt); \
|
||||
_g->words.w0 = _SHIFTL(G_DL, 24, 8); \
|
||||
_g->words.w1 = (u32)(dl); \
|
||||
_g->words.w1 = (uintptr_t)(dl); \
|
||||
}
|
||||
|
||||
#define gsSPDisplayList(dl) \
|
||||
{ \
|
||||
_g->words.w0 = _SHIFTL(G_DL, 24, 8); \
|
||||
_g->words.w1 = (u32)(dl); \
|
||||
_g->words.w1 = (uintptr_t)(dl); \
|
||||
}
|
||||
|
||||
/* BranchList */
|
||||
@@ -1186,7 +1186,7 @@ typedef union
|
||||
|
||||
/* SetPrimColor */
|
||||
|
||||
#define gDPSetPrimColor(pkt, m, l, r, g, b, a) \
|
||||
#define gDPSetPrimColor(pkt, m, l, r, g, b, a) \
|
||||
{ \
|
||||
Gfx *_g = (Gfx *)(pkt); \
|
||||
_g->words.w0 = _SHIFTL(G_SETPRIMCOLOR, 24, 8) \
|
||||
@@ -1198,7 +1198,7 @@ typedef union
|
||||
| _SHIFTL(a, 0, 8); \
|
||||
}
|
||||
|
||||
#define gsDPSetPrimColor(m, l, r, g, b, a) \
|
||||
#define gsDPSetPrimColor(m, l, r, g, b, a) \
|
||||
{ \
|
||||
_g->words.w0 = _SHIFTL(G_SETPRIMCOLOR, 24, 8) \
|
||||
| _SHIFTL(m, 8, 8) \
|
||||
@@ -1239,7 +1239,7 @@ typedef union
|
||||
| _SHIFTL((fmt), 21, 3) \
|
||||
| _SHIFTL((size), 19, 2) \
|
||||
| _SHIFTL((width)-1, 0, 12); \
|
||||
_g->words.w1 = (u32)(img); \
|
||||
_g->words.w1 = (uintptr_t)(img); \
|
||||
}
|
||||
|
||||
#define gsDPSetTextureImage(fmt, size, width, img) \
|
||||
@@ -1248,7 +1248,7 @@ typedef union
|
||||
| _SHIFTL((fmt), 21, 3) \
|
||||
| _SHIFTL((size), 19, 2) \
|
||||
| _SHIFTL((width)-1, 0, 12); \
|
||||
_g->words.w1 = (u32)(img); \
|
||||
_g->words.w1 = (uintptr_t)(img); \
|
||||
}
|
||||
|
||||
/* MoveWd */
|
||||
@@ -1259,7 +1259,7 @@ typedef union
|
||||
_g->words.w0 = _SHIFTL(G_MOVEWORD, 24, 8) \
|
||||
| _SHIFTL((offset), 8, 16) \
|
||||
| _SHIFTL((index), 0, 8); \
|
||||
_g->words.w1 = (u32)(data); \
|
||||
_g->words.w1 = (uintptr_t)(data); \
|
||||
}
|
||||
|
||||
#define gsMoveWd(index, offset, data) \
|
||||
@@ -1267,7 +1267,7 @@ typedef union
|
||||
_g->words.w0 = _SHIFTL(G_MOVEWORD, 24, 8) \
|
||||
| _SHIFTL((offset), 8, 16) \
|
||||
| _SHIFTL((index), 0, 8); \
|
||||
_g->words.w1 = (u32)(data); \
|
||||
_g->words.w1 = (uintptr_t)(data); \
|
||||
}
|
||||
|
||||
/* Matrix Operations */
|
||||
@@ -1302,7 +1302,7 @@ typedef union
|
||||
_g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \
|
||||
| _SHIFTL(G_MV_VIEWPORT, 16, 8) \
|
||||
| _SHIFTL(sizeof(Vp), 0, 16); \
|
||||
_g->words.w1 = (u32)(v); \
|
||||
_g->words.w1 = (uintptr_t)(v); \
|
||||
}
|
||||
|
||||
#define gsSPViewport(v) \
|
||||
@@ -1310,7 +1310,7 @@ typedef union
|
||||
_g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \
|
||||
| _SHIFTL(G_MV_VIEWPORT, 16, 8) \
|
||||
| _SHIFTL(sizeof(Vp), 0, 16); \
|
||||
_g->words.w1 = (u32)(v); \
|
||||
_g->words.w1 = (uintptr_t)(v); \
|
||||
}
|
||||
|
||||
/* 1Triangle */
|
||||
@@ -1429,7 +1429,7 @@ typedef union
|
||||
| _SHIFTL((dtdy), 0, 16); \
|
||||
}
|
||||
|
||||
#define gsSPTextureRectangle(xl, yl, xh, yh, tile, s, t, dsdx, dtdy) \
|
||||
#define gsSPTextureRectangle(xl, yl, xh, yh, tile, s, t, dsdx, dtdy) \
|
||||
{ \
|
||||
_g->words.w0 = _SHIFTL(G_TEXRECT, 24, 8) \
|
||||
| _SHIFTL((xh), 12, 12) \
|
||||
@@ -1511,7 +1511,7 @@ typedef union {
|
||||
#define LIGHT_2 2
|
||||
#define LIGHT_3 3
|
||||
#define LIGHT_4 4
|
||||
#define LIGHT_5 5
|
||||
#define LIGHT_5 5
|
||||
#define LIGHT_6 6
|
||||
#define LIGHT_7 7
|
||||
#define LIGHT_8 8
|
||||
@@ -1524,7 +1524,7 @@ typedef union {
|
||||
_g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \
|
||||
| _SHIFTL(((n)-1)*2+G_MV_L0, 16, 8) \
|
||||
| _SHIFTL(sizeof(Light), 0, 16); \
|
||||
_g->words.w1 = (u32)(l); \
|
||||
_g->words.w1 = (uintptr_t)(l); \
|
||||
}
|
||||
|
||||
#define gsSPLight(l, n) \
|
||||
@@ -1532,7 +1532,7 @@ typedef union {
|
||||
_g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \
|
||||
| _SHIFTL(((n)-1)*2+G_MV_L0, 16, 8) \
|
||||
| _SHIFTL(sizeof(Light), 0, 16); \
|
||||
_g->words.w1 = (u32)(l); \
|
||||
_g->words.w1 = (uintptr_t)(l); \
|
||||
}
|
||||
|
||||
/* LookAtX */
|
||||
@@ -1543,7 +1543,7 @@ typedef union {
|
||||
_g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \
|
||||
| _SHIFTL(G_MV_LOOKATX, 16, 8) \
|
||||
| _SHIFTL(sizeof(Light), 0, 16); \
|
||||
_g->words.w1 = (u32)(la); \
|
||||
_g->words.w1 = (uintptr_t)(la); \
|
||||
}
|
||||
|
||||
#define gsSPLookAtX(la) \
|
||||
@@ -1551,7 +1551,7 @@ typedef union {
|
||||
_g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \
|
||||
| _SHIFTL(G_MV_LOOKATX, 16, 8) \
|
||||
| _SHIFTL(sizeof(Light), 0, 16); \
|
||||
_g->words.w1 = (u32)(la); \
|
||||
_g->words.w1 = (uintptr_t)(la); \
|
||||
}
|
||||
|
||||
/* LookAtY */
|
||||
@@ -1562,7 +1562,7 @@ typedef union {
|
||||
_g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \
|
||||
| _SHIFTL(G_MV_LOOKATY, 16, 8) \
|
||||
| _SHIFTL(sizeof(Light), 0, 16); \
|
||||
_g->words.w1 = (u32)(la); \
|
||||
_g->words.w1 = (uintptr_t)(la); \
|
||||
}
|
||||
|
||||
#define gsSPLookAtY(la) \
|
||||
@@ -1570,7 +1570,7 @@ typedef union {
|
||||
_g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \
|
||||
| _SHIFTL(G_MV_LOOKATY, 16, 8) \
|
||||
| _SHIFTL(sizeof(Light), 0, 16); \
|
||||
_g->words.w1 = (u32)(la); \
|
||||
_g->words.w1 = (uintptr_t)(la); \
|
||||
}
|
||||
|
||||
/* LookAt */
|
||||
@@ -1605,10 +1605,10 @@ typedef union {
|
||||
|
||||
#else
|
||||
#define gSPPerspNormalize(pkt, s) \
|
||||
gMoveWd(pkt, G_MW_PERSPNORM, 0, (s))
|
||||
gMoveWd(pkt, G_MW_PERSPNORM, 0, (s))
|
||||
|
||||
#define gsSPPerspNormalize(s) \
|
||||
gsMoveWd(G_MW_PERSPNORM, 0, (s))
|
||||
gsMoveWd(G_MW_PERSPNORM, 0, (s))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -81,9 +81,9 @@ extern "C" {
|
||||
|
||||
/* Cache operations and macros */
|
||||
|
||||
extern void osInvalDCache(void *, s32);
|
||||
extern void osInvalICache(void *, s32);
|
||||
extern void osWritebackDCache(void *, s32);
|
||||
extern void osInvalDCache(void *, size_t);
|
||||
extern void osInvalICache(void *, size_t);
|
||||
extern void osWritebackDCache(void *, size_t);
|
||||
extern void osWritebackDCacheAll(void);
|
||||
|
||||
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
void osInitialize(void);
|
||||
u32 osGetCount(void);
|
||||
|
||||
u32 osVirtualToPhysical(void *);
|
||||
uintptr_t osVirtualToPhysical(void *);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -21,7 +21,7 @@ typedef struct
|
||||
u16 transferMode;
|
||||
u16 blockNum;
|
||||
s32 sectorNum;
|
||||
u32 devAddr;
|
||||
uintptr_t devAddr;
|
||||
u32 bmCtlShadow;
|
||||
u32 seqCtlShadow;
|
||||
__OSBlockInfo block[2];
|
||||
@@ -44,7 +44,7 @@ typedef struct OSPiHandle_s
|
||||
typedef struct
|
||||
{
|
||||
u8 type;
|
||||
u32 address;
|
||||
uintptr_t address;
|
||||
} OSPiInfo;
|
||||
|
||||
typedef struct
|
||||
@@ -59,8 +59,8 @@ typedef struct
|
||||
{
|
||||
/*0x00*/ OSIoMesgHdr hdr;
|
||||
/*0x08*/ void *dramAddr;
|
||||
/*0x0C*/ u32 devAddr;
|
||||
/*0x10*/ u32 size;
|
||||
/*0x0C*/ uintptr_t devAddr;
|
||||
/*0x10*/ size_t size;
|
||||
//OSPiHandle *piHandle; //from the official definition
|
||||
} OSIoMesg;
|
||||
|
||||
@@ -75,11 +75,11 @@ typedef struct
|
||||
/* Functions */
|
||||
|
||||
s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction,
|
||||
u32 devAddr, void *vAddr, u32 nbytes, OSMesgQueue *mq);
|
||||
uintptr_t devAddr, void *vAddr, size_t nbytes, OSMesgQueue *mq);
|
||||
void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf,
|
||||
s32 cmdMsgCnt);
|
||||
OSMesgQueue *osPiGetCmdQueue(void);
|
||||
s32 osPiWriteIo(u32 devAddr, u32 data);
|
||||
s32 osPiReadIo(u32 devAddr, u32 *data);
|
||||
s32 osPiWriteIo(uintptr_t devAddr, u32 data);
|
||||
s32 osPiReadIo(uintptr_t devAddr, u32 *data);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -29,6 +29,18 @@ typedef volatile s64 vs64;
|
||||
typedef float f32;
|
||||
typedef double f64;
|
||||
|
||||
typedef unsigned long size_t;
|
||||
#ifdef __x86_64__
|
||||
typedef u64 size_t;
|
||||
typedef s64 ssize_t;
|
||||
typedef u64 uintptr_t;
|
||||
typedef s64 intptr_t;
|
||||
typedef s64 ptrdiff_t;
|
||||
#else
|
||||
typedef u32 size_t;
|
||||
typedef s32 ssize_t;
|
||||
typedef u32 uintptr_t;
|
||||
typedef s32 intptr_t;
|
||||
typedef s32 ptrdiff_t;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -317,7 +317,7 @@ extern u32 bhvRandomAnimatedTexture[];
|
||||
extern u32 bhvYellowBackgroundInMenu[];
|
||||
extern u32 bhvMenuButton[];
|
||||
extern u32 bhvMenuButtonManager[];
|
||||
extern u32 bhvStarInActSelector[];
|
||||
extern u32 bhvActSelectorStarType[];
|
||||
extern u32 bhvActSelector[];
|
||||
extern u32 bhvMovingYellowCoin[];
|
||||
extern u32 bhvMovingBlueCoin[];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef _CONFIG_H_
|
||||
#define _CONFIG_H_
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
|
||||
/**
|
||||
* @file config.h
|
||||
@@ -17,6 +17,8 @@
|
||||
// --| US Version Nintendo Bug Fixes
|
||||
/// Fixes bug where obtaining over 999 coins sets the number of lives to 999 (or -25)
|
||||
#define BUGFIX_MAX_LIVES (0 || VERSION_US || VERSION_EU)
|
||||
/// Fixes bug where the Boss music won't fade out after defeating King Bob-omb
|
||||
#define BUGFIX_KING_BOB_OMB_FADE_MUSIC (0 || VERSION_US || VERSION_EU)
|
||||
/// Fixes bug in Bob-Omb Battlefield where entering a warp stops the Koopa race music
|
||||
#define BUGFIX_KOOPA_RACE_MUSIC (0 || VERSION_US || VERSION_EU)
|
||||
/// Fixes bug where Piranha Plants do not reset their action state when the
|
||||
@@ -34,11 +36,11 @@
|
||||
/// incorrect promotion of floats to doubles.
|
||||
#define BUGFIX_GODDARD_BAD_DECLARATIONS (0 || BUGFIXES_CRITICAL)
|
||||
|
||||
//Screen Size Defines
|
||||
// Screen Size Defines
|
||||
#define SCREEN_WIDTH 320
|
||||
#define SCREEN_HEIGHT 240
|
||||
|
||||
//Border Height Define for NTSC Versions
|
||||
// Border Height Define for NTSC Versions
|
||||
#define BORDER_HEIGHT 8
|
||||
|
||||
#endif
|
||||
|
||||
@@ -414,7 +414,7 @@
|
||||
.byte 0x00
|
||||
.endif
|
||||
.byte 0x00, 0x00
|
||||
.word \scale
|
||||
.word32 \scale
|
||||
.if (\displayList != 0)
|
||||
.word \displayList
|
||||
.endif
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
|
||||
.macro execute seg, script, scriptEnd, entry
|
||||
.byte 0x00, 0x10
|
||||
.byte 0x00, 0x04 + 3 * PTR_WIDTH
|
||||
.hword \seg
|
||||
.word \script
|
||||
.word \scriptEnd
|
||||
@@ -29,7 +29,7 @@
|
||||
.endm
|
||||
|
||||
.macro exit_and_execute seg, script, scriptEnd, entry
|
||||
.byte 0x01, 0x10
|
||||
.byte 0x01, 0x04 + 3 * PTR_WIDTH
|
||||
.hword \seg
|
||||
.word \script
|
||||
.word \scriptEnd
|
||||
@@ -52,13 +52,13 @@
|
||||
.endm
|
||||
|
||||
.macro jump target
|
||||
.byte 0x05, 0x08
|
||||
.byte 0x05, 0x04 + PTR_WIDTH
|
||||
.hword 0
|
||||
.word \target
|
||||
.endm
|
||||
|
||||
.macro jump_link target
|
||||
.byte 0x06, 0x08
|
||||
.byte 0x06, 0x04 + PTR_WIDTH
|
||||
.hword 0
|
||||
.word \target
|
||||
.endm
|
||||
@@ -84,25 +84,25 @@
|
||||
.endm
|
||||
|
||||
.macro loop_until op, arg
|
||||
.byte 0x0B, 0x08
|
||||
.byte 0x0B, 0x04 + PTR_WIDTH
|
||||
.byte \op
|
||||
.byte 0
|
||||
.word \arg
|
||||
.endm
|
||||
|
||||
.macro jump_if op, arg, target
|
||||
.byte 0x0C, 0x0C
|
||||
.byte 0x0C, 0x08 + PTR_WIDTH
|
||||
.byte \op
|
||||
.byte 0
|
||||
.word \arg
|
||||
.word32 \arg
|
||||
.word \target
|
||||
.endm
|
||||
|
||||
.macro jump_link_if op, arg, target
|
||||
.byte 0x0D, 0x0C
|
||||
.byte 0x0D, 0x08 + PTR_WIDTH
|
||||
.byte \op
|
||||
.byte 0
|
||||
.word \arg
|
||||
.word32 \arg
|
||||
.word \target
|
||||
.endm
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
.byte 0x0E, 0x08
|
||||
.byte \op
|
||||
.byte 0
|
||||
.word \arg
|
||||
.word32 \arg
|
||||
.endm
|
||||
|
||||
.macro skip
|
||||
@@ -124,13 +124,13 @@
|
||||
.endm
|
||||
|
||||
.macro call arg, func
|
||||
.byte 0x11, 0x08
|
||||
.byte 0x11, 0x04 + PTR_WIDTH
|
||||
.hword \arg
|
||||
.word \func
|
||||
.endm
|
||||
|
||||
.macro call_loop arg, func
|
||||
.byte 0x12, 0x08
|
||||
.byte 0x12, 0x04 + PTR_WIDTH
|
||||
.hword \arg
|
||||
.word \func
|
||||
.endm
|
||||
@@ -151,7 +151,7 @@
|
||||
.endm
|
||||
|
||||
.macro fixed_load loadAddr, romStart, romEnd
|
||||
.byte 0x16, 0x10
|
||||
.byte 0x16, 0x04 + 3 * PTR_WIDTH
|
||||
.hword 0
|
||||
.word \loadAddr
|
||||
.word \romStart
|
||||
@@ -159,14 +159,14 @@
|
||||
.endm
|
||||
|
||||
.macro load_raw seg, romStart, romEnd
|
||||
.byte 0x17, 0x0C
|
||||
.byte 0x17, 0x04 + 2 * PTR_WIDTH
|
||||
.hword \seg
|
||||
.word \romStart
|
||||
.word \romEnd
|
||||
.endm
|
||||
|
||||
.macro load_mio0 seg, romStart, romEnd
|
||||
.byte 0x18, 0x0C
|
||||
.byte 0x18, 0x04 + 2 * PTR_WIDTH
|
||||
.hword \seg
|
||||
.word \romStart
|
||||
.word \romEnd
|
||||
@@ -178,7 +178,7 @@
|
||||
.endm
|
||||
|
||||
.macro load_mio0_texture seg, romStart, romEnd
|
||||
.byte 0x1A, 0x0C
|
||||
.byte 0x1A, 0x04 + 2 * PTR_WIDTH
|
||||
.hword \seg
|
||||
.word \romStart
|
||||
.word \romEnd
|
||||
@@ -205,7 +205,7 @@
|
||||
.endm
|
||||
|
||||
.macro area index, geo
|
||||
.byte 0x1F, 0x08
|
||||
.byte 0x1F, 0x04 + PTR_WIDTH
|
||||
.byte \index
|
||||
.byte 0
|
||||
.word \geo
|
||||
@@ -217,26 +217,26 @@
|
||||
.endm
|
||||
|
||||
.macro load_model_from_dl model, dl, layer
|
||||
.byte 0x21, 0x08
|
||||
.byte 0x21, 0x04 + PTR_WIDTH
|
||||
.hword (\layer << 12) | \model
|
||||
.word \dl
|
||||
.endm
|
||||
|
||||
.macro load_model_from_geo model, geo
|
||||
.byte 0x22, 0x08
|
||||
.byte 0x22, 0x04 + PTR_WIDTH
|
||||
.hword \model
|
||||
.word \geo
|
||||
.endm
|
||||
|
||||
.macro cmd23 model, unk4, unk8
|
||||
.byte 0x23, 0x0C
|
||||
.byte 0x23, 0x08 + PTR_WIDTH
|
||||
.hword \model
|
||||
.word \unk4
|
||||
.word \unk8
|
||||
.float \unk8
|
||||
.endm
|
||||
|
||||
.macro object model, posX, posY, posZ, angleX, angleY, angleZ, behParam, beh, acts=0x1F
|
||||
.byte 0x24, 0x18
|
||||
.byte 0x24, 0x14 + PTR_WIDTH
|
||||
.byte \acts
|
||||
.byte \model
|
||||
.hword \posX
|
||||
@@ -245,15 +245,15 @@
|
||||
.hword \angleX
|
||||
.hword \angleY
|
||||
.hword \angleZ
|
||||
.word \behParam
|
||||
.word32 \behParam
|
||||
.word \beh
|
||||
.endm
|
||||
|
||||
.macro mario unk3, behArg, beh
|
||||
.byte 0x25, 0x0C
|
||||
.byte 0x25, 0x08 + PTR_WIDTH
|
||||
.byte 0
|
||||
.byte \unk3
|
||||
.word \behArg
|
||||
.word32 \behArg
|
||||
.word \beh
|
||||
.endm
|
||||
|
||||
@@ -312,13 +312,13 @@
|
||||
.endm
|
||||
|
||||
.macro terrain terrainData
|
||||
.byte 0x2E, 0x08
|
||||
.byte 0x2E, 0x04 + PTR_WIDTH
|
||||
.hword 0
|
||||
.word \terrainData
|
||||
.endm
|
||||
|
||||
.macro rooms surfaceRooms
|
||||
.byte 0x2F, 0x08
|
||||
.byte 0x2F, 0x04 + PTR_WIDTH
|
||||
.hword 0
|
||||
.word \surfaceRooms
|
||||
.endm
|
||||
@@ -379,7 +379,7 @@
|
||||
.endm
|
||||
|
||||
.macro macro_objects objList
|
||||
.byte 0x39, 0x08
|
||||
.byte 0x39, 0x04 + PTR_WIDTH
|
||||
.hword 0
|
||||
.word \objList
|
||||
.endm
|
||||
|
||||
@@ -25,4 +25,13 @@
|
||||
#define STATIC_ASSERT(cond, msg) typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1]
|
||||
#endif
|
||||
|
||||
// convert a virtual address to physical.
|
||||
#define VIRTUAL_TO_PHYSICAL(addr) ((uintptr_t)(addr) & 0x1FFFFFFF)
|
||||
|
||||
// convert a physical address to virtual.
|
||||
#define PHYSICAL_TO_VIRTUAL(addr) ((uintptr_t)(addr) | 0x80000000)
|
||||
|
||||
// another way of converting virtual to physical
|
||||
#define VIRTUAL_TO_PHYSICAL2(addr) ((u8 *)(addr) - 0x80000000U)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -9,12 +9,18 @@
|
||||
.set K2BASE, 0xC0000000
|
||||
.set SCREEN_WIDTH, 320
|
||||
.set SCREEN_HEIGHT, 240
|
||||
.set PTR_WIDTH, 4
|
||||
|
||||
.macro glabel label
|
||||
.global \label
|
||||
.balign 4
|
||||
\label:
|
||||
.endm
|
||||
|
||||
.macro .word32 x
|
||||
.word \x
|
||||
.endm
|
||||
|
||||
# F3D vertex
|
||||
.macro vertex x, y, z, u, v, r=0xFF, g=0xFF, b=0xFF, a=0xFF
|
||||
.hword \x, \y, \z, 0, \u, \v
|
||||
@@ -105,8 +111,8 @@ binid
|
||||
.endm
|
||||
|
||||
.macro dialog_entry w1, w2, w3, w4
|
||||
.word \w1
|
||||
.word32 \w1
|
||||
.byte (\w2 >> 24), 0x00
|
||||
.hword (\w2 & 0xFFFF), (\w3 >> 16), 0x0000
|
||||
.long \w4
|
||||
.word \w4
|
||||
.endm
|
||||
|
||||
@@ -59,8 +59,8 @@
|
||||
#define DIALOG_UNK1_AWAIT_DIALOG 3
|
||||
#define DIALOG_UNK1_DISABLE_TIME_STOP 4
|
||||
|
||||
#define DIALOG_UNK1_FLAG_1 (1 << 1) // 0x02
|
||||
#define DIALOG_UNK1_FLAG_2 (1 << 2) // 0x04
|
||||
#define DIALOG_UNK1_FLAG_DEFAULT (1 << 1) // 0x02
|
||||
#define DIALOG_UNK1_FLAG_RESPONSE (1 << 2) // 0x04
|
||||
#define DIALOG_UNK1_FLAG_4 (1 << 4) // 0x10
|
||||
|
||||
#define DIALOG_UNK2_ENABLE_TIME_STOP 0
|
||||
@@ -352,6 +352,11 @@
|
||||
#define BOO_DEATH_STATUS_DYING 1
|
||||
#define BOO_DEATH_STATUS_DEAD 2
|
||||
|
||||
/* attackStatus */
|
||||
#define BOO_NOT_ATTACKED 0
|
||||
#define BOO_ATTACKED 1
|
||||
#define BOO_BOUNCED_ON -1
|
||||
|
||||
/* Beta Boo Key */
|
||||
/* oAction */
|
||||
#define BETA_BOO_KEY_ACT_IN_BOO 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -122,8 +122,8 @@
|
||||
#define MARIO_TELEPORTING 0x00000080
|
||||
#define MARIO_UNKNOWN_08 0x00000100
|
||||
#define MARIO_UNKNOWN_13 0x00002000
|
||||
#define MARIO_ENVIRONMENT_NOISE_PLAYED 0x00010000
|
||||
#define MARIO_ACTION_NOISE_PLAYED 0x00020000
|
||||
#define MARIO_ACTION_SOUND_PLAYED 0x00010000
|
||||
#define MARIO_MARIO_SOUND_PLAYED 0x00020000
|
||||
#define MARIO_UNKNOWN_18 0x00040000
|
||||
#define MARIO_PUNCHING 0x00100000
|
||||
#define MARIO_KICKING 0x00200000
|
||||
@@ -415,11 +415,6 @@
|
||||
#define ACT_HOLDING_BOWSER 0x00000391 // (0x191 | ACT_FLAG_STATIONARY)
|
||||
#define ACT_RELEASING_BOWSER 0x00000392 // (0x192 | ACT_FLAG_STATIONARY)
|
||||
|
||||
// convert a virtual address to physical.
|
||||
#define VIRTUAL_TO_PHYSICAL(addr) ((u32)(addr) & 0x1FFFFFFF)
|
||||
// convert a physical address to virtual.
|
||||
#define PHYSICAL_TO_VIRTUAL(addr) ((u32)(addr) | 0x80000000)
|
||||
|
||||
/*
|
||||
this input mask is unused by the controller,
|
||||
but END_DEMO is used internally to signal
|
||||
|
||||
18
include/text_menu_strings.h.in
Normal file
18
include/text_menu_strings.h.in
Normal file
@@ -0,0 +1,18 @@
|
||||
#ifndef TEXT_MENU_STRINGS_H
|
||||
#define TEXT_MENU_STRINGS_H
|
||||
|
||||
// These strings use a different table defined in menu_hud_lut
|
||||
// Unlike text_strings.h.in, the charmap is different and
|
||||
// uses char values from charmap_menu.txt
|
||||
|
||||
/**
|
||||
* File Select JP HUD Text
|
||||
*/
|
||||
#define TEXT_JPHUD_MARIO _("マリオ")
|
||||
#define TEXT_JPHUD_SELECT_FILE _("ファイルセレクト")
|
||||
#define TEXT_JPHUD_CHECK_FILE _("どのスコアをみる?")
|
||||
#define TEXT_JPHUD_COPY_FILE _("ファイルコピーする")
|
||||
#define TEXT_JPHUD_ERASE_FILE _("ファイルけす")
|
||||
#define TEXT_JPHUD_SOUND_SELECT _("サウンドセレクト")
|
||||
|
||||
#endif
|
||||
@@ -1,115 +1,280 @@
|
||||
#ifndef _TEXT_STRINGS_H_
|
||||
#define _TEXT_STRINGS_H_
|
||||
#ifndef TEXT_STRINGS_H
|
||||
#define TEXT_STRINGS_H
|
||||
|
||||
// star select screen
|
||||
#define TEXT_0 _("0")
|
||||
#include "text_menu_strings.h"
|
||||
|
||||
#define TEXT_COIN_X _("$[x]")
|
||||
#define TEXT_STAR_X _("*[x]")
|
||||
|
||||
// common
|
||||
/**
|
||||
* Global Symbols
|
||||
*/
|
||||
#define TEXT_ZERO _("0")
|
||||
#define TEXT_COIN _("$")
|
||||
#define TEXT_STAR _("*")
|
||||
#define TEXT_VARIABLE_X _("[x]")
|
||||
#define TEXT_UNFILLED_STAR _("#")
|
||||
#define TEXT_NEW _("NEW")
|
||||
#define TEXT_STAR _("★")
|
||||
#define TEXT_COIN_X _("$×")
|
||||
#define TEXT_STAR_X _("★×")
|
||||
#define TEXT_VARIABLE_X _("×")
|
||||
#define TEXT_UNFILLED_STAR _("☆")
|
||||
|
||||
/**
|
||||
* Global Text
|
||||
*/
|
||||
// File Select
|
||||
#define TEXT_NEW _("NEW") // New File Text
|
||||
#define TEXT_4DASHES _("----") // Used in Score File Menu
|
||||
|
||||
// Ingame Menu
|
||||
#define TEXT_PAUSE _("PAUSE") // Pause text, Castle Courses
|
||||
#define TEXT_HUD_CONGRATULATIONS _("CONGRATULATIONS") // Course Complete Text, Bowser Courses
|
||||
|
||||
#ifdef VERSION_JP
|
||||
#define TEXT_COURSE _("コ-ス")
|
||||
|
||||
/**
|
||||
* File Select Text
|
||||
*/
|
||||
// Main Screens
|
||||
// JPHUD menu strings are defined in "text_menu_strings.h.in"
|
||||
#define TEXT_MARIO TEXT_JPHUD_MARIO // View Score Menu
|
||||
#define TEXT_SELECT_FILE TEXT_JPHUD_SELECT_FILE
|
||||
#define TEXT_CHECK_FILE TEXT_JPHUD_CHECK_FILE
|
||||
#define TEXT_COPY_FILE TEXT_JPHUD_COPY_FILE
|
||||
#define TEXT_ERASE_FILE TEXT_JPHUD_ERASE_FILE
|
||||
#define TEXT_SOUND_SELECT TEXT_JPHUD_SOUND_SELECT
|
||||
|
||||
#define TEXT_FILE_MARIO_A _("マリオA")
|
||||
#define TEXT_FILE_MARIO_B _("マリオB")
|
||||
#define TEXT_FILE_MARIO_C _("マリオC")
|
||||
#define TEXT_FILE_MARIO_D _("マリオD")
|
||||
|
||||
// Menu Options
|
||||
#define TEXT_SCORE _("スコア")
|
||||
#define TEXT_COPY _("コピ-")
|
||||
#define TEXT_ERASE _("けす")
|
||||
|
||||
// Sound Options
|
||||
#define TEXT_STEREO _("ステレオ")
|
||||
#define TEXT_MONO _("モノラル")
|
||||
#define TEXT_HEADSET _("ヘッドホン")
|
||||
|
||||
// Misc Menu Text
|
||||
#define TEXT_SAVED_DATA_EXISTS _("ファイルにデ-タがはいってます")
|
||||
#define TEXT_NO_SAVED_DATA_EXISTS _("ファイルにデ-タがありません")
|
||||
|
||||
// Inside a Menu
|
||||
#define TEXT_RETURN _("もどる")
|
||||
#define TEXT_CHECK_SCORE _("スコアをみる")
|
||||
#define TEXT_COPY_FILE_BUTTON _("ファイルコピ-")
|
||||
#define TEXT_ERASE_FILE_BUTTON _("ファイルけす")
|
||||
|
||||
// Score Menu
|
||||
#define TEXT_HI_SCORE _("ハイスコア")
|
||||
#define TEXT_MY_SCORE _("マイスコア")
|
||||
#define TEXT_SCORE_MARIO_A _("マリオA")
|
||||
#define TEXT_SCORE_MARIO_B _("マリオB")
|
||||
#define TEXT_SCORE_MARIO_C _("マリオC")
|
||||
#define TEXT_SCORE_MARIO_D _("マリオD")
|
||||
|
||||
// Copy Menu
|
||||
#define TEXT_COPY_IT_TO_WHERE _("どこにコピ-しますか?")
|
||||
#define TEXT_COPYING_COMPLETED _("コピ-おわりました")
|
||||
#define TEXT_NO_FILE_TO_COPY_FROM _("からのファイルがありません")
|
||||
|
||||
// Erase Menu
|
||||
#define TEXT_SURE _("ほんと?")
|
||||
#define TEXT_YES _("はい")
|
||||
#define TEXT_NO _("いいえ")
|
||||
#define TEXT_FILE_MARIO_A_JUST_ERASED _("マリオAをけしました")
|
||||
|
||||
/**
|
||||
* Menus Text (Pause, Course Completed)
|
||||
*/
|
||||
// Main Courses
|
||||
#define TEXT_COURSE _("コ-ス")
|
||||
#define TEXT_MYSCORE _("マイスコア")
|
||||
#define TEXT_CONTINUE _("つづけて マリオする?")
|
||||
#define TEXT_EXIT_COURSE _("コ-スからでる?")
|
||||
#define TEXT_CAMERA_ANGLE_R _("Rボタンのカメラきりかえ")
|
||||
|
||||
// Camera Options
|
||||
#define TEXT_LAKITU_MARIO _("ジュゲム+マリオ")
|
||||
#define TEXT_LAKITU_STOP _("ジュゲム+ストップ")
|
||||
#define TEXT_NORMAL_UPCLOSE _("(おすすめ)(リアル)")
|
||||
#define TEXT_NORMAL_FIXED _("(おすすめ)(とまる)")
|
||||
#define TEXT_CONTINUE _("つづけて マリオする?")
|
||||
#define TEXT_EXIT_COURSE _("コ-スからでる?")
|
||||
#define TEXT_CAMERA_ANGLE_R _("Rボタンのカメラきりかえ")
|
||||
|
||||
// Course Completed Misc Text
|
||||
#define TEXT_CATCH _("キャッチ!")
|
||||
#define TEXT_CLEAR _("クリア!")
|
||||
#define TEXT_HUD_HI_SCORE _("HISCORE")
|
||||
|
||||
// Save Options
|
||||
#define TEXT_SAVE_AND_CONTINUE _("セ-ブしてつづける?")
|
||||
#define TEXT_SAVE_AND_QUIT _("セ-ブしておわる?")
|
||||
#define TEXT_CONTINUE_WITHOUT_SAVING _("セ-ブしないでつづける?")
|
||||
// ending cutscene subtitles
|
||||
|
||||
/**
|
||||
* Ending Peach cutscene text.
|
||||
*/
|
||||
#define TEXT_FILE_MARIO_EXCLAMATION _("マリオ!!")
|
||||
#define TEXT_POWER_STARS_RESTORED _("おしろにスタ-が もどったのね")
|
||||
#define TEXT_THANKS_TO_YOU _("みんな あなたのおかげだわ!")
|
||||
#define TEXT_THANK_YOU_MARIO _("ありがとう マリオ")
|
||||
#define TEXT_SOMETHING_SPECIAL _("なにか おれいをしなくちゃ・・")
|
||||
#define TEXT_COME_ON_EVERYBODY _("さあ みんな")
|
||||
#define TEXT_LISTEN_EVERYBODY _("さあ みんな")
|
||||
#define TEXT_LETS_HAVE_CAKE _("おいしいケ-キを やきましょう")
|
||||
#define TEXT_FOR_MARIO _("マリオの ために・・・")
|
||||
#define TEXT_FILE_MARIO_QUESTION _("マリオ?")
|
||||
#define TEXT_SURE _("ほんと?")
|
||||
#define TEXT_NO_SAVED_DATA_EXISTS _("ファイルにデ-タがありません")
|
||||
#define TEXT_FILE_MARIO_A_JUST_ERASED _("マリオAをけしました")
|
||||
#define TEXT_SAVED_DATA_EXISTS _("ファイルにデ-タがはいってます")
|
||||
// file select
|
||||
#define TEXT_RETURN _("もどる")
|
||||
#define TEXT_CHECK_SCORE _("スコアをみる")
|
||||
#define TEXT_HI_SCORE _("ハイスコア")
|
||||
#define TEXT_MY_SCORE _("マイスコア")
|
||||
#define TEXT_COPY_FILE_BUTTON _("ファイルコピ-")
|
||||
#define TEXT_ERASE_FILE_BUTTON _("ファイルけす")
|
||||
#define TEXT_STEREO _("ステレオ")
|
||||
#define TEXT_MONO _("モノラル")
|
||||
#define TEXT_HEADSET _("ヘッドホン")
|
||||
#define TEXT_FILE_MARIO_A _("マリオA")
|
||||
#define TEXT_FILE_MARIO_B _("マリオB")
|
||||
#define TEXT_FILE_MARIO_C _("マリオC")
|
||||
#define TEXT_FILE_MARIO_D _("マリオD")
|
||||
#define TEXT_SCORE_MARIO_A _("マリオA")
|
||||
#define TEXT_SCORE_MARIO_B _("マリオB")
|
||||
#define TEXT_SCORE_MARIO_C _("マリオC")
|
||||
#define TEXT_SCORE_MARIO_D _("マリオD")
|
||||
#define TEXT_SCORE _("スコア")
|
||||
#define TEXT_COPY _("コピ-")
|
||||
#define TEXT_ERASE _("けす")
|
||||
#define TEXT_COPY_IT_TO_WHERE _("どこにコピ-しますか?")
|
||||
#define TEXT_COPYING_COMPLETED _("コピ-おわりました")
|
||||
#define TEXT_NO_FILE_TO_COPY_FROM _("からのファイルがありません")
|
||||
#define TEXT_YES _("はい")
|
||||
#define TEXT_NO _("いいえ")
|
||||
#define TEXT_4DASHES _("----")
|
||||
#define TEXT_HI_SCORE_EN _("HISCORE")
|
||||
#define TEXT_CLEAR _("クリア!")
|
||||
#define TEXT_CATCH _("キャッチ!")
|
||||
// todo: handle these strings
|
||||
#define TEXT_MARIO 0x0F, 0x10, 0x11, 0xFF
|
||||
#define TEXT_SELECT_FILE 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0xff
|
||||
#define TEXT_CHECK_FILE 0x15, 0x16, 0x12, 0x09, 0x13, 0x08, 0x14, 0x0d, 0x17, 0xff
|
||||
#define TEXT_COPY_FILE 0x00, 0x01, 0x02, 0x03, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0xff
|
||||
#define TEXT_ERASE_FILE 0x00, 0x01, 0x02, 0x03, 0x0E, 0x0C, 0xFF
|
||||
#define TEXT_SOUND_SELECT 0x18, 0x19, 0x1A, 0x1B, 0x04, 0x05, 0x06, 0x07, 0xFF
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(VERSION_US) || defined(VERSION_EU)
|
||||
|
||||
/**
|
||||
* File Select Text
|
||||
*/
|
||||
// Main Screens
|
||||
#define TEXT_MARIO _("MARIO") // View Score Menu
|
||||
#define TEXT_SELECT_FILE _("SELECT FILE")
|
||||
#define TEXT_CHECK_FILE _("CHECK FILE")
|
||||
#define TEXT_COPY_FILE _("COPY FILE")
|
||||
#define TEXT_ERASE_FILE _("ERASE FILE")
|
||||
#define TEXT_SOUND_SELECT _("SOUND SELECT")
|
||||
#define TEXT_FILE_MARIO_A _("MARIO A")
|
||||
#define TEXT_FILE_MARIO_B _("MARIO B")
|
||||
#define TEXT_FILE_MARIO_C _("MARIO C")
|
||||
#define TEXT_FILE_MARIO_D _("MARIO D")
|
||||
|
||||
// Menu Options
|
||||
#define TEXT_SCORE _("SCORE")
|
||||
#define TEXT_COPY _("COPY")
|
||||
#define TEXT_ERASE _("ERASE")
|
||||
|
||||
// Sound Options
|
||||
#define TEXT_STEREO _("STEREO")
|
||||
#define TEXT_MONO _("MONO")
|
||||
#define TEXT_HEADSET _("HEADSET")
|
||||
|
||||
// Misc Menu Text
|
||||
#define TEXT_SAVED_DATA_EXISTS _("SAVED DATA EXITS") // Misspell
|
||||
#define TEXT_NO_SAVED_DATA_EXISTS _("NO SAVED DATA EXISTS")
|
||||
|
||||
// Inside a Menu
|
||||
#define TEXT_RETURN _("RETURN")
|
||||
#define TEXT_CHECK_SCORE _("CHECK SCORE")
|
||||
#define TEXT_COPY_FILE_BUTTON _("COPY FILE")
|
||||
#define TEXT_ERASE_FILE_BUTTON _("ERASE FILE")
|
||||
|
||||
// Score Menu
|
||||
#define TEXT_HI_SCORE _("HI SCORE")
|
||||
#define TEXT_MY_SCORE _("MY SCORE")
|
||||
// Score Mario Text ("☺" is the Mario face defined in the US/EU menu char table)
|
||||
#define TEXT_SCORE_MARIO_A _("☺A")
|
||||
#define TEXT_SCORE_MARIO_B _("☺B")
|
||||
#define TEXT_SCORE_MARIO_C _("☺C")
|
||||
#define TEXT_SCORE_MARIO_D _("☺D")
|
||||
|
||||
// Copy Menu
|
||||
#define TEXT_COPY_IT_TO_WHERE _("COPY IT TO WHERE?")
|
||||
#define TEXT_COPYING_COMPLETED _("COPYING COMPLETED")
|
||||
#define TEXT_NO_FILE_TO_COPY_FROM _("NO EMPTY FILE")
|
||||
|
||||
// Erase Menu
|
||||
#define TEXT_SURE _("SURE?")
|
||||
#define TEXT_YES _("YES")
|
||||
#define TEXT_NO _("NO")
|
||||
#define TEXT_FILE_MARIO_A_JUST_ERASED _("MARIO A JUST ERASED")
|
||||
|
||||
/**
|
||||
* Menus Text (Pause, Course Completed)
|
||||
*/
|
||||
// Main Courses
|
||||
#define TEXT_COURSE _("COURSE")
|
||||
#define TEXT_MYSCORE _("MYSCORE")
|
||||
#define TEXT_CONTINUE _("CONTINUE")
|
||||
#define TEXT_EXIT_COURSE _("EXIT COURSE")
|
||||
#ifndef VERSION_EU // "R" text is different in EU
|
||||
#define TEXT_CAMERA_ANGLE_R _("SET CAMERA ANGLE WITH R")
|
||||
#endif
|
||||
|
||||
// Camera Options
|
||||
#define TEXT_LAKITU_MARIO _("LAKITU + MARIO")
|
||||
#define TEXT_LAKITU_STOP _("LAKITU + STOP")
|
||||
#define TEXT_NORMAL_UPCLOSE __("(NORMAL)(UP-CLOSE)")
|
||||
#define TEXT_NORMAL_FIXED __("(NORMAL)(FIXED)")
|
||||
|
||||
// Course Completed Misc Text
|
||||
#define TEXT_CATCH _("CATCH")
|
||||
#define TEXT_CLEAR _("CLEAR")
|
||||
#define TEXT_HUD_HI_SCORE _("HI SCORE")
|
||||
|
||||
// Save Options
|
||||
#define TEXT_SAVE_AND_CONTINUE _("SAVE & CONTINUE")
|
||||
#define TEXT_SAVE_AND_QUIT _("SAVE & QUIT")
|
||||
#define TEXT_CONTINUE_WITHOUT_SAVING _("CONTINUE, DON'T SAVE")
|
||||
|
||||
/**
|
||||
* Ending Peach cutscene text.
|
||||
*/
|
||||
#define TEXT_FILE_MARIO_EXCLAMATION _("Mario!")
|
||||
#define TEXT_POWER_STARS_RESTORED __("The power of the Stars is restored to the castle...")
|
||||
#define TEXT_THANKS_TO_YOU __("...and it's all thanks to you!")
|
||||
#define TEXT_THANK_YOU_MARIO __("Thank you, Mario!")
|
||||
#define TEXT_SOMETHING_SPECIAL __("We have to do something special for you...")
|
||||
#define TEXT_LISTEN_EVERYBODY _("Listen, everybody,")
|
||||
#define TEXT_LETS_HAVE_CAKE _("let's bake a delicious cake...")
|
||||
#define TEXT_FOR_MARIO _("...for Mario...")
|
||||
#define TEXT_FILE_MARIO_QUESTION _("Mario!")
|
||||
|
||||
#endif
|
||||
|
||||
#else
|
||||
#ifdef VERSION_EU
|
||||
#define TEXT_CAMERA_ANGLE_R_EN _("SET CAMERA ANGLE WITH [R]")
|
||||
|
||||
#define TEXT_MY_SCORE_FR _("MON SCORE")
|
||||
/**
|
||||
* Menus Text (Pause, Course Completed)
|
||||
*/
|
||||
// Main Courses
|
||||
// English, "R" text is different
|
||||
#define TEXT_CAMERA_ANGLE_R _("SET CAMERA ANGLE WITH [R]")
|
||||
// French
|
||||
#define TEXT_COURSE_FR _("NIVEAU")
|
||||
#define TEXT_NORMAL_UPCLOSE_FR _("(NORMAL}{GROS-PLAN)")
|
||||
#define TEXT_NORMAL_FIXED_FR _("(NORMAL}{FIXE)")
|
||||
#define TEXT_MY_SCORE_FR _("MON SCORE")
|
||||
#define TEXT_CONTINUE_FR _("CONTINUER")
|
||||
#define TEXT_EXIT_COURSE_FR _("QUITTER NIVEAU")
|
||||
#define TEXT_CAMERA_ANGLE_R_FR _("RÉGLAGE CAMÉRA AVEC [R]")
|
||||
#define TEXT_HI_SCORE_FR _("MEILLEUR SCORE")
|
||||
#define TEXT_CONGRATULATIONS_FR _("FELICITATIONS")
|
||||
#define TEXT_SAVE_AND_CONTINUE_FR _("SAUVEGARDER & CONTINUER")
|
||||
#define TEXT_SAVE_AND_QUIT_FR _("SAUVEGARDER & QUITTER")
|
||||
#define TEXT_CONTINUE_WITHOUT_SAVING_FR _("CONTINUER SANS SAUVEGARDER")
|
||||
|
||||
#define TEXT_MY_SCORE_DE _("LEISTUNG")
|
||||
// German
|
||||
#define TEXT_COURSE_DE _("KURS")
|
||||
#define TEXT_NORMAL_UPCLOSE_DE _("(NORMAL}{WEIT-ZOOM)")
|
||||
#define TEXT_NORMAL_FIXED_DE _("(NORMAL}{STATIV)")
|
||||
#define TEXT_MY_SCORE_DE _("LEISTUNG")
|
||||
#define TEXT_CONTINUE_DE _("WEITER")
|
||||
#define TEXT_EXIT_COURSE_DE _("KURS VERLASSEN")
|
||||
#define TEXT_CAMERA_ANGLE_R_DE _("KAMERA MIT [R] VERSTELLEN")
|
||||
#define TEXT_HI_SCORE_DE _("BESTLEISTUNG")
|
||||
#define TEXT_CONGRATULATIONS_DE _("GRATULATION")
|
||||
|
||||
// Camera Options
|
||||
// French
|
||||
#define TEXT_NORMAL_UPCLOSE_FR __("(NORMAL)(GROS-PLAN)")
|
||||
#define TEXT_NORMAL_FIXED_FR __("(NORMAL)(FIXE)")
|
||||
// German
|
||||
#define TEXT_NORMAL_UPCLOSE_DE __("(NORMAL)(WEIT-ZOOM)")
|
||||
#define TEXT_NORMAL_FIXED_DE __("(NORMAL)(STATIV)")
|
||||
|
||||
// Course Completed Misc Text
|
||||
// French
|
||||
#define TEXT_HUD_HI_SCORE_FR _("MEILLEUR SCORE")
|
||||
#define TEXT_HUD_CONGRATULATIONS_FR _("FELICITATIONS")
|
||||
// German
|
||||
#define TEXT_HUD_HI_SCORE_DE _("BESTLEISTUNG")
|
||||
#define TEXT_HUD_CONGRATULATIONS_DE _("GRATULATION")
|
||||
|
||||
// Save Options
|
||||
// French
|
||||
#define TEXT_SAVE_AND_CONTINUE_FR _("SAUVEGARDER & CONTINUER")
|
||||
#define TEXT_SAVE_AND_QUIT_FR _("SAUVEGARDER & QUITTER")
|
||||
#define TEXT_CONTINUE_WITHOUT_SAVING_FR _("CONTINUER SANS SAUVEGARDER")
|
||||
// German
|
||||
#define TEXT_SAVE_AND_CONTINUE_DE _("SPEICHERN & WEITER")
|
||||
#define TEXT_SAVE_AND_QUIT_DE _("SPEICHERN & ENDE")
|
||||
#define TEXT_CONTINUE_WITHOUT_SAVING_DE _("WEITER OHNE ZU SPEICHERN")
|
||||
|
||||
/**
|
||||
* Ending Peach cutscene text.
|
||||
*/
|
||||
// French
|
||||
#define TEXT_POWER_STARS_RESTORED_FR _("Grâce aux étoiles, le château a retrouvé ses pouvoirs...")
|
||||
#define TEXT_THANKS_TO_YOU_FR _("...et ceci grâce à toi!")
|
||||
#define TEXT_THANK_YOU_MARIO_FR _("Merci, Mario!")
|
||||
@@ -117,7 +282,7 @@
|
||||
#define TEXT_COME_ON_EVERYBODY_FR _("Venez les amis...")
|
||||
#define TEXT_LETS_HAVE_CAKE_FR _("Allons préparer un délicieux gâteau...")
|
||||
#define TEXT_FOR_MARIO_FR _("...pour Mario...")
|
||||
|
||||
// German
|
||||
#define TEXT_POWER_STARS_RESTORED_DE _("Die Macht der Sterne ruht wieder sicher im Schloss...")
|
||||
#define TEXT_THANKS_TO_YOU_DE _("...und alles dank Deiner Hilfe!")
|
||||
#define TEXT_THANK_YOU_MARIO_DE _("Vielen Dank, Mario!")
|
||||
@@ -125,80 +290,7 @@
|
||||
#define TEXT_COME_ON_EVERYBODY_DE _("Hört alle her...")
|
||||
#define TEXT_LETS_HAVE_CAKE_DE _("Laßt uns einen leckeren Kuchen backen...")
|
||||
#define TEXT_FOR_MARIO_DE _("...für Mario...")
|
||||
#endif
|
||||
|
||||
#define TEXT_COURSE _("COURSE")
|
||||
#define TEXT_MY_SCORE _("MY SCORE")
|
||||
#define TEXT_LAKITU_MARIO _("LAKITU + MARIO")
|
||||
#define TEXT_LAKITU_STOP _("LAKITU + STOP")
|
||||
#define TEXT_NORMAL_UPCLOSE _("(NORMAL}{UP-CLOSE)")
|
||||
#define TEXT_NORMAL_FIXED _("(NORMAL}{FIXED)")
|
||||
#define TEXT_CONTINUE _("CONTINUE")
|
||||
#define TEXT_EXIT_COURSE _("EXIT COURSE")
|
||||
#define TEXT_CAMERA_ANGLE_R _("SET CAMERA ANGLE WITH R")
|
||||
#define TEXT_SAVE_AND_CONTINUE _("SAVE & CONTINUE")
|
||||
#define TEXT_SAVE_AND_QUIT _("SAVE & QUIT")
|
||||
#define TEXT_CONTINUE_WITHOUT_SAVING _("CONTINUE, DON'T SAVE")
|
||||
#define TEXT_HI_SCORE_EN _("HI SCORE")
|
||||
// ending cutscene subtitles
|
||||
// TODO: Handle the following uncompressed strings
|
||||
// #define TEXT_POWER_STARS_RESTORED __("The power of the Stars is restored to the castle...")
|
||||
// #define TEXT_THANKS_TO_YOU __("...and it's all thanks to you!")
|
||||
// #define TEXT_THANK_YOU_MARIO __("Thank you, Mario!")
|
||||
// #define TEXT_SOMETHING_SPECIAL __("We have to do something special for you...")
|
||||
#define TEXT_FILE_MARIO_EXCLAMATION _("Mario!")
|
||||
#define TEXT_POWER_STARS_RESTORED 0x1D, 0x2B, 0x28, 0x9E, 0x33, 0x32, 0x3A, 0x28, 0x35, 0x9E, 0x32, 0x29, 0x9E, 0x37, 0x2B, 0x28, 0x9E, 0x1C, 0x37, 0x24, 0x35, 0x36, 0x9E, 0x2C, 0x36, 0x9E, 0x35, 0x28, 0x36, 0x37, 0x32, 0x35, 0x28, 0x27, 0x9E, 0x37, 0x32, 0x9E, 0x37, 0x2B, 0x28, 0x9E, 0x26, 0x24, 0x36, 0x37, 0x2F, 0x28, 0x3F, 0x3F, 0x3F, 0xFF
|
||||
#define TEXT_THANKS_TO_YOU 0x3F, 0x3F, 0x3F, 0x24, 0x31, 0x27, 0x9E, 0x2C, 0x37, 0x3E, 0x36, 0x9E, 0x24, 0x2F, 0x2F, 0x9E, 0x37, 0x2B, 0x24, 0x31, 0x2E, 0x36, 0x9E, 0x37, 0x32, 0x9E, 0x3C, 0x32, 0x38, 0xF2, 0xFF
|
||||
#define TEXT_THANK_YOU_MARIO 0x1D, 0x2B, 0x24, 0x31, 0x2E, 0x9E, 0x3C, 0x32, 0x38, 0x6F, 0x9E, 0x16, 0x24, 0x35, 0x2C, 0x32, 0xF2, 0xFF
|
||||
#define TEXT_SOMETHING_SPECIAL 0x20, 0x28, 0x9E, 0x2B, 0x24, 0x39, 0x28, 0x9E, 0x37, 0x32, 0x9E, 0x27, 0x32, 0x9E, 0x36, 0x32, 0x30, 0x28, 0x37, 0x2B, 0x2C, 0x31, 0x2A, 0x9E, 0x36, 0x33, 0x28, 0x26, 0x2C, 0x24, 0x2F, 0x9E, 0x29, 0x32, 0x35, 0x9E, 0x3C, 0x32, 0x38, 0x3F, 0x3F, 0x3F, 0xFF
|
||||
#define TEXT_COME_ON_EVERYBODY _("Listen, everybody,")
|
||||
#define TEXT_LETS_HAVE_CAKE _("let's bake a delicious cake...")
|
||||
#define TEXT_FOR_MARIO _("...for Mario...")
|
||||
#define TEXT_FILE_MARIO_QUESTION _("Mario!")
|
||||
#define TEXT_ERASE_FILE _("ERASE FILE")
|
||||
#define TEXT_SURE _("SURE?")
|
||||
#define TEXT_NO_SAVED_DATA_EXISTS _("NO SAVED DATA EXISTS")
|
||||
#define TEXT_FILE_MARIO_A_JUST_ERASED _("MARIO A JUST ERASED")
|
||||
#define TEXT_SAVED_DATA_EXISTS _("SAVED DATA EXITS")
|
||||
// file select
|
||||
#define TEXT_RETURN _("RETURN")
|
||||
#define TEXT_CHECK_SCORE _("CHECK SCORE")
|
||||
#define TEXT_MYSCORE _("MYSCORE")
|
||||
#define TEXT_COPY_FILE_BUTTON _("COPY FILE")
|
||||
#define TEXT_ERASE_FILE_BUTTON _("ERASE FILE")
|
||||
#define TEXT_STEREO _("STEREO")
|
||||
#define TEXT_MONO _("MONO")
|
||||
#define TEXT_HEADSET _("HEADSET")
|
||||
#define TEXT_FILE_MARIO_A _("MARIO A")
|
||||
#define TEXT_FILE_MARIO_B _("MARIO B")
|
||||
#define TEXT_FILE_MARIO_C _("MARIO C")
|
||||
#define TEXT_FILE_MARIO_D _("MARIO D")
|
||||
#define TEXT_SCORE_MARIO_A 0x40, 0x41, 0x0A, 0xFF
|
||||
#define TEXT_SCORE_MARIO_B 0x40, 0x41, 0x0B, 0xFF
|
||||
#define TEXT_SCORE_MARIO_C 0x40, 0x41, 0x0C, 0xFF
|
||||
#define TEXT_SCORE_MARIO_D 0x40, 0x41, 0x0D, 0xFF
|
||||
#define TEXT_SCORE _("SCORE")
|
||||
#define TEXT_COPY _("COPY")
|
||||
#define TEXT_ERASE _("ERASE")
|
||||
#define TEXT_COPY_IT_TO_WHERE _("COPY IT TO WHERE?")
|
||||
#define TEXT_COPYING_COMPLETED _("COPYING COMPLETED")
|
||||
#define TEXT_NO_FILE_TO_COPY_FROM _("NO EMPTY FILE")
|
||||
#define TEXT_YES _("YES")
|
||||
#define TEXT_NO _("NO")
|
||||
#define TEXT_4DASHES _("----")
|
||||
#define TEXT_CLEAR _("CLEAR")
|
||||
#define TEXT_CATCH _("CATCH")
|
||||
#define TEXT_MARIO _("MARIO")
|
||||
#define TEXT_SELECT_FILE _("SELECT FILE")
|
||||
#define TEXT_CHECK_FILE _("CHECK FILE")
|
||||
#define TEXT_COPY_FILE _("COPY FILE")
|
||||
#define TEXT_ERASE_FILE _("ERASE FILE")
|
||||
#define TEXT_SOUND_SELECT _("SOUND SELECT")
|
||||
#endif
|
||||
|
||||
#define TEXT_PAUSE _("PAUSE")
|
||||
|
||||
// course complete menu
|
||||
#define TEXT_CONGRATULATIONS _("CONGRATULATIONS")
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user