Skip to content

Commit a515d6f

Browse files
committed
let the rewrite begin
1 parent 5a30693 commit a515d6f

File tree

17 files changed

+2137
-6
lines changed

17 files changed

+2137
-6
lines changed

config.json

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
"debug": 1,
88
"psyq": 0,
99
"mininoob": 0,
10-
"8mb": 1,
11-
"pch": "common.h"
10+
"8mb": 1
1211
},
1312
"versions":
1413
[
@@ -66,6 +65,17 @@
6665
],
6766
"build_id": 1006
6867
}
68+
},
69+
{
70+
"rewrite":
71+
{
72+
"name": "ctr-u.bin",
73+
"symbols":
74+
[
75+
"gcc-syms-rewrite.txt"
76+
],
77+
"build_id": 9999
78+
}
6979
}
7080
]
7181
}

disc.json

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,128 @@
121121
]
122122
}
123123
],
124+
"rewrite":
125+
[
126+
{
127+
"SCUS_944.26":
128+
[
129+
{
130+
"name": "header",
131+
"address": "0x8000B070",
132+
"offset": "0x0"
133+
},
134+
{
135+
"name": "exe",
136+
"address": "0x80010000",
137+
"offset": "0x800"
138+
}
139+
],
140+
"bigfile/overlays/221_EndRaceMenu_CrystalChallenge.bin":
141+
[
142+
{
143+
"name": "221",
144+
"address": "0x8009f6fc",
145+
"offset": "0x0"
146+
}
147+
],
148+
"bigfile/overlays/222_EndRaceMenu_ArcadeAdventure.bin":
149+
[
150+
{
151+
"name": "222",
152+
"address": "0x8009f6fc",
153+
"offset": "0x0"
154+
}
155+
],
156+
"bigfile/overlays/223_EndRaceMenu_Relic.bin":
157+
[
158+
{
159+
"name": "223",
160+
"address": "0x8009f6fc",
161+
"offset": "0x0"
162+
}
163+
],
164+
"bigfile/overlays/224_EndRaceMenu_TimeTrial.bin":
165+
[
166+
{
167+
"name": "224",
168+
"address": "0x8009f6fc",
169+
"offset": "0x0"
170+
}
171+
],
172+
"bigfile/overlays/225_EndRaceMenu_BattleVS.bin":
173+
[
174+
{
175+
"name": "225",
176+
"address": "0x8009f6fc",
177+
"offset": "0x0"
178+
}
179+
],
180+
"bigfile/overlays/226_Quadblock_1P.bin":
181+
[
182+
{
183+
"name": "226",
184+
"address": "0x800a0cb8",
185+
"offset": "0x0"
186+
}
187+
],
188+
"bigfile/overlays/227_Quadblock_2P.bin":
189+
[
190+
{
191+
"name": "227",
192+
"address": "0x800a0cb8",
193+
"offset": "0x0"
194+
}
195+
],
196+
"bigfile/overlays/228_Quadblock_3P.bin":
197+
[
198+
{
199+
"name": "228",
200+
"address": "0x800a0cb8",
201+
"offset": "0x0"
202+
}
203+
],
204+
"bigfile/overlays/229_Quadblock_4P.bin":
205+
[
206+
{
207+
"name": "229",
208+
"address": "0x800a0cb8",
209+
"offset": "0x0"
210+
}
211+
],
212+
"bigfile/overlays/230_Threads_MainMenu.bin":
213+
[
214+
{
215+
"name": "230",
216+
"address": "0x800ab9f0",
217+
"offset": "0x0"
218+
}
219+
],
220+
"bigfile/overlays/231_Threads_Racing.bin":
221+
[
222+
{
223+
"name": "231",
224+
"address": "0x800ab9f0",
225+
"offset": "0x0"
226+
}
227+
],
228+
"bigfile/overlays/232_Threads_AdvHub.bin":
229+
[
230+
{
231+
"name": "232",
232+
"address": "0x800ab9f0",
233+
"offset": "0x0"
234+
}
235+
],
236+
"bigfile/overlays/233_Threads_Cutscene.bin":
237+
[
238+
{
239+
"name": "233",
240+
"address": "0x800ab9f0",
241+
"offset": "0x0"
242+
}
243+
]
244+
}
245+
],
124246
"pal":
125247
[
126248
{

include/ctr/gte.h

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#ifndef CTR_GTE_H
2+
#define CTR_GTE_H
3+
4+
#include <ctr_math.h>
5+
#include <psn00bsdk/include/inline_c.h>
6+
7+
enum GTE_ROW_INDEX
8+
{
9+
GTE_ROW_INDEX_0,
10+
GTE_ROW_INDEX_1,
11+
GTE_ROW_INDEX_2,
12+
};
13+
14+
enum GTE_MATRIX
15+
{
16+
GTE_MATRIX_ROT,
17+
GTE_MATRIX_LIGHT,
18+
GTE_MATRIX_COLOR,
19+
};
20+
21+
enum GTE_VECTOR
22+
{
23+
GTE_VECTOR_0,
24+
GTE_VECTOR_1,
25+
GTE_VECTOR_2,
26+
GTE_VECTOR_IR,
27+
};
28+
29+
enum GTE_MAC
30+
{
31+
GTE_MAC_0,
32+
GTE_MAC_1,
33+
GTE_MAC_2,
34+
GTE_MAC_3,
35+
GTE_MAC_VEC, /* 1-3 */
36+
};
37+
38+
/* HELPERS */
39+
#define _CAT(a, b) a##b
40+
#define CAT(a, b) _CAT(a, b)
41+
#define CAT3(a, b, c) CAT(CAT(a, b), c)
42+
43+
/* Private definitions */
44+
#define _gte_loadSVecMatrix_GTE_MATRIX_ROT_GTE_ROW_INDEX_0(v) gte_ldsvrtrow0(v)
45+
#define _gte_loadSVecMatrix_GTE_MATRIX_LIGHT_GTE_ROW_INDEX_0(v) gte_ldsvllrow0(v)
46+
#define _gte_loadSVecMatrix_GTE_MATRIX_COLOR_GTE_ROW_INDEX_0(v) gte_ldsvlcrow0(v)
47+
#define _gte_loadSVec_GTE_VECTOR_0(v) gte_ldv0(v)
48+
#define _gte_loadSVec_GTE_VECTOR_1(v) gte_ldv1(v)
49+
#define _gte_loadSVec_GTE_VECTOR_2(v) gte_ldv2(v)
50+
#define _gte_loadSVec_GTE_VECTOR_IR(v) gte_ldsv(v)
51+
#define _gte_readMac_GTE_MAC_0(out) gte_stopz(out)
52+
#define _gte_readMac_GTE_MAC_1(out) gte_stlvnl0(out)
53+
#define _gte_readMac_GTE_MAC_2(out) gte_stlvnl1(out)
54+
#define _gte_readMac_GTE_MAC_3(out) gte_stlvnl2(out)
55+
#define _gte_readMac_GTE_MAC_VEC(out) gte_stlvnl(out)
56+
#define _gte_dotProduct_GTE_ROW_INDEX_0(out, matrixType, vecType) gte_mvmva(0, matrixType, vecType, 3, 0); _gte_readMac_GTE_MAC_1(out)
57+
#define _gte_dotProduct_GTE_ROW_INDEX_1(out, matrixType, vecType) gte_mvmva(0, matrixType, vecType, 3, 0); _gte_readMac_GTE_MAC_2(out)
58+
#define _gte_dotProduct_GTE_ROW_INDEX_2(out, matrixType, vecType) gte_mvmva(0, matrixType, vecType, 3, 0); _gte_readMac_GTE_MAC_3(out)
59+
60+
/* API */
61+
#define gte_readMac(out, macType) CAT(_gte_readMac_, macType)(out)
62+
#define gte_loadSVec(v, vecType) CAT(_gte_loadSVec_, vecType)(v)
63+
#define gte_loadRowMatrix(v, rowIndex, matrixType) CAT3(_gte_loadSVecMatrix_, matrixType, _##rowIndex)(v)
64+
#define gte_mulMatrixVec(out, matrixType, vecType) gte_mvmva(1, matrixType, vecType, 3, 0); _gte_readMac_GTE_MAC_VEC(out)
65+
#define gte_dotProduct(out, rowIndex, matrixType, vecType) CAT(_gte_dotProduct_, rowIndex)(out, matrixType, vecType)
66+
67+
#endif

include/ctr/macros.h

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#ifndef MACROS_H
2+
#define MACROS_H
3+
4+
#include <stdbool.h>
5+
#include <stddef.h>
6+
#ifdef INTELLISENSE_HINT
7+
#include <stdint-gcc.h>
8+
#else
9+
#include <stdint.h>
10+
#endif
11+
12+
typedef uint64_t u64;
13+
typedef int64_t s64;
14+
typedef uint32_t u32;
15+
typedef int32_t s32;
16+
typedef uint16_t u16;
17+
typedef int16_t s16;
18+
typedef uint8_t u8;
19+
typedef int8_t s8;
20+
21+
#define AugReview 805
22+
#define SepReview 903
23+
#define UsaRetail 926
24+
#define JpnTrial 1006
25+
#define EurRetail 1020
26+
#define JpnRetail 1111
27+
28+
#if BUILD == EurRetail
29+
#define SCREEN_HEIGHT 236
30+
#define FPS 25
31+
#define ELAPSED_MS 40
32+
#else
33+
#define SCREEN_HEIGHT 216
34+
#define FPS 30
35+
#define ELAPSED_MS 32
36+
#endif
37+
#define SCREEN_WIDTH 512
38+
#define SECOND (FPS * ELAPSED_MS)
39+
#define MINUTE (SECOND * 60)
40+
#define HOUR (MINUTE * 60)
41+
42+
#define SECONDS(x) ((s32)(((float)(x)) * SECOND))
43+
#define MINUTES(x) ((s32)(((float)(x)) * MINUTE))
44+
#define HOURS(x) ((s32)(((float)(x)) * HOUR))
45+
46+
#define nullptr ((void *) 0)
47+
#define len(arr) (sizeof(arr) / sizeof(arr[0]))
48+
#define force_inline static inline __attribute__((always_inline))
49+
50+
#define OFFSETOF(TYPE, ELEMENT) ((unsigned int)&(((TYPE *)0)->ELEMENT))
51+
52+
#endif

0 commit comments

Comments
 (0)