Skip to content

Commit df47e22

Browse files
authored
Merge pull request n64decomp#30 from FazanaJ/master
EU now successfully builds + misc
2 parents c1ef7c9 + 0395d1a commit df47e22

20 files changed

+405
-267
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -801,7 +801,7 @@ $(ELF): $(BUILD_DIR)/sm64_prelim.elf $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $
801801
$(ROM): $(ELF)
802802
$(call print,Building ROM:,$<,$@)
803803
ifeq ($(CONSOLE),n64)
804-
$(V)$(OBJCOPY) --pad-to=0x800000 --gap-fill=0xFF $< $@ -O binary
804+
$(V)$(OBJCOPY) --pad-to=0x101000 --gap-fill=0xFF $< $@ -O binary
805805
else ifeq ($(CONSOLE),bb)
806806
$(V)$(OBJCOPY) --gap-fill=0x00 $< $@ -O binary
807807
$(V)dd if=$@ of=tmp bs=16K conv=sync

asm/rom_header.s

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,15 @@
1414
.word 0x00000000 /* Checksum 2 */
1515
.word 0x00000000 /* Unknown */
1616
.word 0x00000000 /* Unknown */
17-
.if VERSION_SH == 1
1817
.ascii INTERNAL_ROM_NAME /* Internal ROM name */
19-
.else
20-
.ascii INTERNAL_ROM_NAME /* Internal ROM name */
21-
.endif
2218
.word 0x00000000 /* Unknown */
2319
.word 0x0000004E /* Cartridge */
24-
.ascii "SM" /* Cartridge ID */
20+
.ascii "ED" /* Cartridge ID */
2521

2622
/* Region */
27-
#ifdef VERSION_EU
28-
.ascii "P" /* PAL (Europe) */
29-
#elif defined(VERSION_US)
30-
.ascii "E" /* NTSC-U (North America) */
31-
#else
23+
#ifdef defined(VERSION_JP) || defined(VERSION_SH)
3224
.ascii "J" /* NTSC-J (Japan) */
25+
#else
26+
.ascii "E" /* NTSC-U (North America) */
3327
#endif
34-
35-
3628
.byte 0x00 /* Version */

bin/segment2.c

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2166,7 +2166,6 @@ const Gfx dl_draw_text_bg_box[] = {
21662166
gsSPEndDisplayList(),
21672167
};
21682168

2169-
#ifndef VERSION_EU
21702169
// 0x0200EE28 - 0x0200EE68
21712170
static const Vtx vertex_ia8_char[] = {
21722171
#if defined(VERSION_JP) || defined(VERSION_SH)
@@ -2181,43 +2180,23 @@ static const Vtx vertex_ia8_char[] = {
21812180
{{{ 0, 16, 0}, 0, { 480, 256}, {0xff, 0xff, 0xff, 0xff}}},
21822181
#endif
21832182
};
2184-
// !EU
2185-
#endif
21862183

21872184
#ifdef VERSION_EU
2188-
// 0x020073B0
2189-
const Gfx dl_ia_text_begin[] = {
2190-
gsDPPipeSync(),
2191-
gsDPSetTexturePersp(G_TP_NONE),
2192-
gsDPSetCombineMode(G_CC_FADEA, G_CC_FADEA),
2193-
gsDPSetEnvColor(255, 255, 255, 255),
2194-
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
2195-
gsDPSetTextureFilter(G_TF_POINT),
2196-
gsSPEndDisplayList(),
2197-
};
2198-
21992185
// 0x020073E8 - 0x02007418
22002186
const Gfx dl_ia_text_tex_settings[] = {
22012187
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_MIRROR, 3, G_TX_NOLOD, G_TX_WRAP | G_TX_MIRROR, 4, G_TX_NOLOD),
22022188
gsDPLoadSync(),
22032189
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, ((16 * 8 + G_IM_SIZ_4b_INCR) >> G_IM_SIZ_4b_SHIFT) - 1, CALC_DXT(16, G_IM_SIZ_4b_BYTES)),
22042190
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_4b, 1, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_MIRROR, 3, G_TX_NOLOD, G_TX_WRAP | G_TX_MIRROR, 4, G_TX_NOLOD),
22052191
gsDPSetTileSize(0, 0, 0, (16 - 1) << G_TEXTURE_IMAGE_FRAC, (8 - 1) << G_TEXTURE_IMAGE_FRAC),
2192+
gsSPVertex(vertex_ia8_char, 4, 0),
2193+
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
22062194
gsSPEndDisplayList(),
2207-
};
2208-
2209-
// 0x02007418 - 0x02007450
2210-
const Gfx dl_ia_text_end[] = {
2211-
gsDPPipeSync(),
2212-
gsDPSetTexturePersp(G_TP_PERSP),
2213-
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
2214-
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
2215-
gsDPSetEnvColor(255, 255, 255, 255),
2216-
gsDPSetTextureFilter(G_TF_BILERP),
22172195
gsSPEndDisplayList(),
22182196
};
2197+
#endif
22192198

2220-
#elif defined(VERSION_US)
2199+
#if defined(VERSION_US) || defined(VERSION_EU)
22212200
const Gfx dl_ia_text_begin[] = {
22222201
gsDPPipeSync(),
22232202
gsSPClearGeometryMode(G_LIGHTING),
@@ -2228,7 +2207,9 @@ const Gfx dl_ia_text_begin[] = {
22282207
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
22292208
gsSPEndDisplayList(),
22302209
};
2210+
#endif
22312211

2212+
#ifdef VERSION_US
22322213
const Gfx dl_ia_text_tex_settings[] = {
22332214
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 3, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD),
22342215
gsDPLoadSync(),
@@ -2239,8 +2220,9 @@ const Gfx dl_ia_text_tex_settings[] = {
22392220
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
22402221
gsSPEndDisplayList(),
22412222
};
2223+
#endif
22422224

2243-
#else
2225+
#if defined(VERSION_JP) || defined(VERSION_SH)
22442226
// 0x0200EE68 - 0x0200EEA8
22452227
const Gfx dl_ia_text_begin[] = {
22462228
gsDPPipeSync(),
@@ -2266,7 +2248,6 @@ const Gfx dl_ia_text_tex_settings[] = {
22662248
};
22672249
#endif
22682250

2269-
#ifndef VERSION_EU
22702251
// 0x0200EEF0 - 0x0200EF30
22712252
const Gfx dl_ia_text_end[] = {
22722253
gsDPPipeSync(),
@@ -2278,7 +2259,6 @@ const Gfx dl_ia_text_end[] = {
22782259
gsDPSetTextureFilter(G_TF_BILERP),
22792260
gsSPEndDisplayList(),
22802261
};
2281-
#endif
22822262

22832263
// 0x0200EF30 - 0x0200EF60
22842264
static const Vtx vertex_triangle[] = {

include/config.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@
9898
#define PARALLEL_LAKITU_CAM
9999
// Allows Mario to ledgegrab sloped floors
100100
#define NO_FALSE_LEDGEGRABS
101+
//Adds multiple languages to the game. Just a placeholder for the most part, because it only works with EU, and must be enabled with EU.
102+
#define MULTILANG (0 || VERSION_EU)
101103
//Enables Puppy Camera 2, a rewritten camera that can be freely configured and modified.
102104
//#define PUPPYCAM
103105

include/eu_translation.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
// EU changes most text to arrays for each language. This define allows these
55
// differences to be combined.
66
#ifdef VERSION_EU
7-
#define LANGUAGE_ARRAY(cmd) cmd[LANGUAGE_FUNCTION]
7+
//#define LANGUAGE_ARRAY(cmd) cmd[LANGUAGE_FUNCTION]
8+
#define LANGUAGE_ARRAY(cmd) cmd
89
#else
910
#define LANGUAGE_ARRAY(cmd) cmd
1011
#endif

include/text_strings.h.in

Lines changed: 38 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@
33

44
#include "text_menu_strings.h"
55

6-
#ifdef PUPPYCAM
6+
#if defined(PUPPYCAM)
77
#define NC_CAMX_EN _("Camera X Sensitivity")
88
#define NC_CAMY_EN _("Camera Y Sensitivity")
99
#define NC_INVERTX_EN _("Invert X Axis")
10-
#define NC_INVERTX_FR _("Invertir Axe X")
11-
#define NC_INVERTX_DE _("Invert X Axis")
1210
#define NC_INVERTY_EN _("Invert Y Axis")
1311
#define NC_CAMC_EN _("Camera Centre Speed")
1412
#define NC_ANALOGUE_EN _("Analogue Camera")
@@ -18,59 +16,50 @@
1816
#define OPTION_SCHEME1_EN _("Double Tap")
1917
#define OPTION_SCHEME2_EN _("Single Press")
2018
#define OPTION_SCHEME3_EN _("Classic")
19+
#define OPTION_LANGUAGE_EN _("Language")
2120
#define NC_WIDE_EN _("Widescreen")
2221
#define NC_HIGHLIGHT_L _(">")
2322
#define NC_HIGHLIGHT_R _("<")
2423
#define NC_BUTTON_EN _("[R]: Options")
2524
#define NC_BUTTON2_EN _("[R]: Return")
26-
#define NC_OPTION_EN _("PUPPYCAM OPTIONS")
27-
25+
#define NC_OPTION_EN _("OPTIONS")
2826

29-
#if defined(VERSION_EU)
27+
#if MULTILANG
3028
#define NC_CAMX_FR _("Sensibilite sur l'axe X")
31-
#define NC_CAMX_DE _("Camera X Sensitivity")
32-
3329
#define NC_CAMY_FR _("Sensibilite sur l'axe Y")
34-
#define NC_CAMY_DE _("Camera Y Sensitivity")
35-
30+
#define NC_INVERTX_FR _("Invertir Axe X")
3631
#define NC_INVERTY_FR _("Invertir Axe Y")
37-
#define NC_INVERTY_DE _("Invert Y Axis")
38-
3932
#define NC_CAMC_FR _("Vitesse de Centrage")
40-
#define NC_CAMC_DE _("Camera Centre Speed")
41-
4233
#define NC_ANALOGUE_FR _("Camera Analogue")
43-
#define NC_ANALOGUE_DE _("Analogue Camera")
44-
4534
#define NC_SCHEME_FR _("Control Scheme")
46-
#define NC_SCHEME_DE _("Control Scheme")
47-
35+
#define OPTION_ENABLED_FR _("Active")
36+
#define OPTION_DISABLED_FR _("Desactive")
37+
#define OPTION_SCHEME1_FR _("Double Tap")
38+
#define OPTION_SCHEME2_FR _("Single Press")
39+
#define OPTION_SCHEME3_FR _("Classic")
40+
#define OPTION_LANGUAGE_FR _("Language")
4841
#define NC_WIDE_FR _("Widescreen")
49-
#define NC_WIDE_DE _("Widescreen")
50-
51-
#define OPTION_ENABLED_FR _("Active")
52-
#define OPTION_ENABLED_DE _("Enabled")
53-
54-
#define OPTION_DISABLED_FR _("Desactive")
55-
#define OPTION_DISABLED_DE _("Disabled")
56-
57-
#define OPTION_SCHEME1_FR _("Double Tap")
58-
#define OPTION_SCHEME1_DE _("Double Tap")
59-
60-
#define OPTION_SCHEME2_FR _("Single Press")
61-
#define OPTION_SCHEME2_DE _("Single Press")
42+
#define NC_BUTTON_FR _("[R]: Options")
43+
#define NC_BUTTON2_FR _("[R]: Retournez")
44+
#define NC_OPTION_FR _("OPTIONS")
6245

63-
#define OPTION_SCHEME3_FR _("Classic")
64-
#define OPTION_SCHEME3_DE _("Classic")
65-
66-
#define NC_BUTTON_FR _("[R]: Options")
67-
#define NC_BUTTON_DE _("[R]: Options")
68-
69-
#define NC_BUTTON2_FR _("[R]: Retournez")
70-
#define NC_BUTTON2_DE _("[R]: Return")
71-
72-
#define NC_OPTION_FR _("OPTIONS PUPPYCAM")
73-
#define NC_OPTION_DE _("PUPPYCAM OPTIONS")
46+
#define NC_CAMX_DE _("Camera X Sensitivity")
47+
#define NC_CAMY_DE _("Camera Y Sensitivity")
48+
#define NC_INVERTY_DE _("Invert Y Axis")
49+
#define NC_INVERTX_DE _("Invert X Axis")
50+
#define NC_CAMC_DE _("Camera Centre Speed")
51+
#define NC_ANALOGUE_DE _("Analogue Camera")
52+
#define NC_SCHEME_DE _("Control Scheme")
53+
#define OPTION_ENABLED_DE _("Enabled")
54+
#define OPTION_DISABLED_DE _("Disabled")
55+
#define OPTION_SCHEME1_DE _("Double Tap")
56+
#define OPTION_SCHEME2_DE _("Single Press")
57+
#define OPTION_SCHEME3_DE _("Classic")
58+
#define OPTION_LANGUAGE_DE _("Language")
59+
#define NC_WIDE_DE _("Widescreen")
60+
#define NC_BUTTON_DE _("[R]: Options")
61+
#define NC_BUTTON2_DE _("[R]: Return")
62+
#define NC_OPTION_DE _("OPTIONS")
7463
#endif
7564
#endif
7665

@@ -97,7 +86,7 @@
9786
#define TEXT_HUD_CONGRATULATIONS _("CONGRATULATIONS") // Course Complete Text, Bowser Courses
9887

9988
//Widescreen stuff
100-
#ifdef WIDE
89+
#if defined(WIDE) && !defined(PUPPYCAM)
10190
#define TEXT_HUD_CURRENT_RATIO_43 _("ASPECT RATIO: 4:3")
10291
#define TEXT_HUD_CURRENT_RATIO_169 _("ASPECT RATIO: 16:9")
10392
#define TEXT_HUD_PRESS_L _("PRESS L TO SWITCH")
@@ -303,7 +292,12 @@
303292

304293
#endif
305294

306-
#ifdef VERSION_EU
295+
296+
#define TEXT_ENGLISH _("ENGLISH")
297+
#define TEXT_FRENCH _("FRANÇAIS")
298+
#define TEXT_GERMAN _("DEUTSCH")
299+
300+
#if MULTILANG
307301

308302
/**
309303
* File Select Text
@@ -387,10 +381,6 @@
387381
#define TEXT_MONO_DE _("MONO")
388382
#define TEXT_HEADSET_DE _("PHONES")
389383

390-
#define TEXT_ENGLISH _("ENGLISH")
391-
#define TEXT_FRENCH _("FRANÇAIS")
392-
#define TEXT_GERMAN _("DEUTSCH")
393-
394384
#define TEXT_HI_SCORE_FR _("MEILLEUR SCORE")
395385
#define TEXT_HI_SCORE_DE _("BESTLEISTUNG")
396386

src/audio/data.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ extern u32 gAudioRandom;
116116
#define EXT_AUDIO_INIT_POOL_SIZE 0x8000
117117
#else
118118
// EU and SH versions not yet supported for extended audio heap
119-
#define EXT_AUDIO_HEAP_SIZE 0x0
120-
#define EXT_AUDIO_INIT_POOL_SIZE 0x0
119+
#define EXT_AUDIO_HEAP_SIZE 0x24400
120+
#define EXT_AUDIO_INIT_POOL_SIZE 0x8000
121121
#endif
122122
#else
123123
#define EXT_AUDIO_HEAP_SIZE 0x0

src/audio/load.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,8 +1000,9 @@ void audio_init() {
10001000
}
10011001
#endif
10021002

1003-
D_EU_802298D0 = 20.03042f;
1004-
gRefreshRate = 50;
1003+
//D_EU_802298D0 = 20.03042f;
1004+
D_EU_802298D0 = 16.713f;
1005+
gRefreshRate = 60;
10051006
port_eu_init();
10061007
if (k) {
10071008
}

src/buffers/buffers.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,7 @@
1010
#include "audio/synthesis.h"
1111

1212
ALIGNED8 u8 gDecompressionHeap[0xD000];
13-
#if defined(VERSION_EU)
14-
ALIGNED16 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(0x31200 + EXT_AUDIO_HEAP_SIZE + EXT_AUDIO_INIT_POOL_SIZE) - 0x3800];
15-
#elif defined(VERSION_SH)
16-
ALIGNED16 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(0x31200 + EXT_AUDIO_HEAP_SIZE + EXT_AUDIO_INIT_POOL_SIZE) - 0x4800];
17-
#else
1813
ALIGNED16 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(0x31200 + EXT_AUDIO_HEAP_SIZE + EXT_AUDIO_INIT_POOL_SIZE + BETTER_REVERB_SIZE)];
19-
#endif
2014

2115
ALIGNED8 u8 gIdleThreadStack[0x800];
2216
ALIGNED8 u8 gThread3Stack[0x2000];
@@ -26,9 +20,14 @@ ALIGNED8 u8 gThread5Stack[0x2000];
2620
ALIGNED8 u8 gThread6Stack[0x2000];
2721
#endif
2822
// 0x400 bytes
29-
ALIGNED8 u8 gGfxSPTaskStack[SP_DRAM_STACK_SIZE8];
23+
#if UNF
24+
ALIGNED16 u8 gGfxSPTaskStack[SP_DRAM_STACK_SIZE8];
25+
ALIGNED16 u8 gGfxSPTaskYieldBuffer[OS_YIELD_DATA_SIZE];
26+
#else
3027
// 0xc00 bytes for f3dex, 0x900 otherwise
28+
ALIGNED8 u8 gGfxSPTaskStack[SP_DRAM_STACK_SIZE8];
3129
ALIGNED8 u8 gGfxSPTaskYieldBuffer[OS_YIELD_DATA_SIZE];
30+
#endif // UNF
3231
// 0x200 bytes
3332
struct SaveBuffer __attribute__ ((aligned (8))) gSaveBuffer;
3433
// 0x190a0 bytes

0 commit comments

Comments
 (0)