Match & link dvderr.c

This commit is contained in:
Cuyler36
2023-05-22 06:15:38 -04:00
parent ea1266b192
commit 1d2def2717
14 changed files with 170 additions and 21 deletions
+3 -1
View File
@@ -7,7 +7,9 @@
extern "C" {
#endif
#define GX_CLAMP 0
#define GX_REPEAT 1
#define GX_MIRROR 2
#ifdef __cplusplus
}
+30 -3
View File
@@ -1,15 +1,42 @@
#ifndef DVDERR_H
#define DVDERR_H
/* dvderr lives in dol, so dvderr.c is at src/dvderr.c */
#include "types.h"
#include "PR/mbi.h"
#ifdef __cplusplus
extern "C" {
#endif
extern BOOL dvderr_draw();
enum dvderr_state {
DVDERR_NONE = -1,
DVDERR_COVER_OPEN = 0,
DVDERR_NO_DISK,
DVDERR_WRONG_DISK,
DVDERR_RETRY,
DVDERR_FATAL,
DVDERR_NUM
};
typedef void (*DVDERR_DRAW_PROC)();
/* sizeof(dvderr_work) == 0x3F8 */
typedef struct dvderr_work_s {
/* 0x000 */ Gfx gfx[100]; // display list buffer
/* 0x320 */ Gfx* gfx_p; // current display list buffer write pointer
/* 0x328 */ Mtx ortho; // orthographic matrix
/* 0x368 */ Mtx projection; // projection matrix
/* 0x3A8 */ Mtx modelview; // modelview matrix
/* 0x3E8 */ f32 scale; // scale for modelview matrix
/* 0x3EC */ DVDERR_DRAW_PROC draw_proc; // current draw routine
/* 0x3F0 */ int now_error; // current dvd error
/* 0x3F4 */ int next_error; // next dvd error
} dvderr_work;
extern int dvderr_draw();
extern void dvderr_init();
#ifdef __cplusplus
+5 -5
View File
@@ -447,7 +447,7 @@ do { \
#define gsDPSetTextureImage_Dolphin(fmt, siz, h, w, img) \
{{ \
_SHIFTL(G_SETTIMG, 24, 8) | _SHIFTL(fmt, 21, 3) | _SHIFTL(siz, 19, 2) | _SHIFTL(1, 18, 1) | \
_SHIFTL((h/4)-1, 10, 8) | _SHIFTL((w-1), 0, 10), img \
_SHIFTL((h/4)-1, 10, 8) | _SHIFTL((w-1), 0, 10), (unsigned int)img \
}}
#define gsDPSetTile_Dolphin(d_fmt, tile, tlut_name, wrap_s, wrap_t, shift_s, shift_t) \
@@ -531,14 +531,14 @@ do { \
#define gsSPNTriangles_5b(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) \
{{ \
(unsigned long long)((gsSPNTriangleData1(v9, v10, v11) << 49) | (gsSPNTriangleData1(v6, v7, v8) << 34) | \
(gsSPNTriangleData1(v3, v4, v5) << 19) | (gsSPNTriangleData1(v0, v1, v2) << 4)) | G_VTX_MODE_5bit \
_SHIFTL(gsSPNTriangleData1(v9, v10, v11, 0), 17, 15) | _SHIFTL(gsSPNTriangleData1(v6, v7, v8, 0), 2, 15) | _SHIFTL(_SHIFTR(gsSPNTriangleData1(v3, v4, v5, 0), 13, 2), 0, 2), \
_SHIFTL(gsSPNTriangleData1(v3, v4, v5, 0), 19, 13) | _SHIFTL(gsSPNTriangleData1(v0, v1, v2, 0), 4, 15) | _SHIFTL(G_VTX_MODE_5bit, 0, 1) \
}}
#define gsSPNTrianglesInit_5b(n, v0, v1, v2, v3, v4, v5, v6, v7, v8) \
{{ \
_SHIFTL(G_TRIN_INDEPEND, 24, 8) | _SHIFTL(n-1, 17, 7) | _SHIFTL(gsSPNTriangleData1(v6, v7, v8, 0), 2, 15) | _SHIFTL(_SHIFTR(gsSPNTriangleData1(v3, v4, v5, 0), 2, 13), 0, 2), \
_SHIFTL(gsSPNTriangleData1(v3, v4, v5, 0), 19, 13) | _SHIFTL(gsSPNTriangleData1(v0, v1, v2, 0), 4, 15) | _SHIFTL(G_VTX_MODE_5bit, 0, 1) \
_SHIFTL(G_TRIN_INDEPEND, 24, 8) | _SHIFTL(n-1, 17, 7) | _SHIFTL(gsSPNTriangleData1(v6, v7, v8, 0), 2, 15) | _SHIFTL(_SHIFTR(gsSPNTriangleData1(v3, v4, v5, 0), 13, 2), 0, 2), \
_SHIFTL(gsSPNTriangleData1(v3, v4, v5, 0), 19, 13) | _SHIFTL(gsSPNTriangleData1(v0, v1, v2, 0), 4, 15) | _SHIFTL(G_VTX_MODE_5bit, 0, 1) \
}}
#define gsSPNTriangles_7b(v0, v1, v2, v3, v4, v5, v6, v7, v8) \
+1
View File
@@ -4,6 +4,7 @@
#include "types.h"
#include "dolphin/os/OSTime.h"
#include "dolphin/os/OSCache.h"
#include "libultra/gu.h"
#define N64_SCREEN_HEIGHT 240
#define N64_SCREEN_WIDTH 320
+2
View File
@@ -62,4 +62,6 @@ typedef u32 unknown;
/* Fully opaque, 5 bits per color channel */ (0x8000 | ((((argb8) >> 16) & 0xF8) << 7) | ((((argb8) >> 8) & 0xF8) << 2) | (((argb8) & 0xFF) >> 3)) : \
/* 3 bits of transparency, 4 bits per color channel */ (((((argb8) >> 24) & 0xE0) << 7) | ((((argb8) >> 16) & 0xF0) << 4) | (((argb8) >> 8) & 0xF0) | (((argb8) & 0xF0) >> 4))))
#define GPACK_RGB5A3(r, g, b, a) ARGB8_to_RGB5A3((((a) & 0xFF) << 24) | (((r) & 0xFF) << 16) | (((g) & 0xFF) << 8) | ((b) & 0xFF))
#endif