Initial prototype version compatibility

This commit is contained in:
Gillou68310 2024-10-23 10:56:51 +02:00
parent c2a47b8b4f
commit c760af0486
25 changed files with 295 additions and 118 deletions

View File

@ -11,7 +11,7 @@ jobs:
strategy:
fail-fast: false
matrix:
version: [us, fr, eu]
version: [us, fr, eu, proto]
steps:
- name: Checkout repository

View File

@ -126,8 +126,11 @@ else ifeq ($(VERSION),fr)
CPPFLAGS += -DVERSION_FR=1
else ifeq ($(VERSION),eu)
CPPFLAGS += -DVERSION_EU=1
else ifeq ($(VERSION),proto)
CPPFLAGS += -DVERSION_PROTO=1
LDFLAGS += -T $(LINKER_DIR)/undefined_syms_auto.txt #TODO: remove
else
$(error Invalid VERSION variable detected. Please use either 'us' or 'fr' or 'eu')
$(error Invalid VERSION variable detected. Please use either 'us', 'fr', 'eu' or 'proto')
endif
### Sources ###

View File

@ -10,7 +10,7 @@
#define MAXKEYS 17
#define MAXACTORS 150
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
#define D_8012FCB0_SIZE 48
#elif VERSION_FR
#define D_8012FCB0_SIZE 64

View File

@ -26,6 +26,8 @@
#define INCLUDE_ASM(FOLDER, NAME) __INCLUDE_ASM__("asm/fr/nonmatchings/"FOLDER, NAME)
#elif VERSION_EU
#define INCLUDE_ASM(FOLDER, NAME) __INCLUDE_ASM__("asm/eu/nonmatchings/"FOLDER, NAME)
#elif VERSION_PROTO
#define INCLUDE_ASM(FOLDER, NAME) __INCLUDE_ASM__("asm/proto/nonmatchings/"FOLDER, NAME)
#endif
#endif
#ifndef INCLUDE_RODATA
@ -41,6 +43,8 @@
#define INCLUDE_RODATA(FOLDER, NAME) __INCLUDE_RODATA__("asm/fr/nonmatchings/"FOLDER, NAME)
#elif VERSION_EU
#define INCLUDE_RODATA(FOLDER, NAME) __INCLUDE_RODATA__("asm/eu/nonmatchings/"FOLDER, NAME)
#elif VERSION_PROTO
#define INCLUDE_RODATA(FOLDER, NAME) __INCLUDE_RODATA__("asm/proto/nonmatchings/"FOLDER, NAME)
#endif
#endif
#ifndef FORCE_ASM

View File

@ -291,7 +291,7 @@ void func_8003671C(s16 playernum, u16 arg1, s16 arg2, s16 arg3)
}
}
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(buf, "KILLED PLAYER %d\n", playernum + 1);
func_800A419C(playernum2, buf);
sprintf(buf, "KILLED BY PLAYER %d", playernum2 + 1);
@ -2325,7 +2325,7 @@ static void func_8003E8D0(void)
if (gpSector[j].floorstat & 0x100)
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
func_800A419C(D_801B0820, "SECRET AREA");
#elif VERSION_FR
func_800A419C(D_801B0820, "ZONE SECRETE");

View File

@ -6868,7 +6868,7 @@ static u8 func_80051684(s16 sectnum)
/*800DF1C0*/
static char *D_800DF1C0[4] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
"TNT BARREL",
"FUSE WIRE",
"PLUNGER BOX",

View File

@ -2520,7 +2520,7 @@ void func_8005FC20(s32 spritenum, s32 arg1)
/*8005FC34*/
void func_8005FC34(s32 spritenum, s32 arg1)
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
func_800A419C(0, "BABE SAVED!");
#elif VERSION_FR
func_800A419C(0, "GONZESSE SAUVEE!");

View File

@ -2153,7 +2153,7 @@ void func_80069E50(void)
}
changeSpriteStat(i, 0);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
func_800A419C(0, "BABE SAVED!");
#elif VERSION_FR
func_800A419C(0, "GONZESSE SAUVEE!");

View File

@ -201,7 +201,7 @@ void func_8006A0A0(s16 spritenum)
ptr = gpKeyStrInfo[gMapNum][spr2->unk25-1];
if (*ptr != 0)
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(sp40, "%s REQUIRED", ptr);
#elif VERSION_FR
sprintf(sp40, "%s", ptr);
@ -296,7 +296,7 @@ void func_8006A0A0(s16 spritenum)
if (spr1->statnum == 10)
{
char sp60[32];
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(sp60, "PULL SWITCHES TOGETHER");
#elif VERSION_FR
sprintf(sp60, "ACTIVEZ INTERRUPTEURS ENSEMBLE");
@ -682,7 +682,7 @@ static void func_8006B384(s32 spritenum)
/*8006B4E4*/
void func_8006B4E4(s16 arg0)
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
func_800A419C(0, "OBJECTIVE COMPLETED");
#elif VERSION_FR
func_800A419C(0, "OBJECTIF ATTEINT");
@ -789,7 +789,7 @@ void func_8006B590(s16 arg0)
}
}
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
if (cond == 1)
func_800A419C(0, "DEFENSE SYSTEMS INACTIVE");
if (cond == 2)
@ -1038,7 +1038,7 @@ void func_8006B590(s16 arg0)
if (gpSprite[i].lotag != k)
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
func_800A419C(0, "NEW OBJECTIVE");
#elif VERSION_FR
func_800A419C(0, "NOUVEL OBJECTIF");
@ -1059,7 +1059,7 @@ void func_8006B590(s16 arg0)
D_800E192C = -1;
if (gMapNum == MAP_NUCLEAR_WINTER)
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
func_800A419C(0, "NEW OBJECTIVE");
#elif VERSION_FR
func_800A419C(0, "NOUVEL OBJECTIF");

View File

@ -4,7 +4,7 @@
#include "code0/82480.h"
#include "code0/code0.h"
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
#define D_801A6D90_SIZE 128
#elif VERSION_FR
#define D_801A6D90_SIZE 400

View File

@ -52,7 +52,7 @@ static u8 D_800E0994[96] = {
/*800E09F4*/
static u8 D_800E09F4[96] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
@ -87,7 +87,7 @@ static u8 D_800E0A54[96] = {
/*800E0AB4*/
static u8 D_800E0AB4[96] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
0x0C, 0x05, 0x01, 0x0F, 0x01, 0x13, 0x0E, 0x05, 0x07, 0x07, 0x01, 0x09,
0x06, 0x06, 0x05, 0x0C, 0x11, 0x0C, 0x11, 0x11, 0x12, 0x11, 0x11, 0x0F,
0x13, 0x12, 0x05, 0x01, 0x01, 0x09, 0x01, 0x0D, 0x12, 0x15, 0x15, 0x12,
@ -304,7 +304,7 @@ code0UnkStruct16 *func_8007FE2C(char *arg0, s32 arg1, s32 arg2, s32 arg3, s32 ar
ptr->unk38 = arg2;
ptr->unk3C = arg3;
ptr->unk70 = arg0;
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
ptr->unk11 = 0xFF;
#elif defined(VERSION_FR) || defined(VERSION_EU)
ptr->unk11 = 0x96;

View File

@ -39,7 +39,7 @@ static s32 _unused[3] = {0};
/*800E1780*/
static char *D_800E1780[8] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
"ARMOR",
"SCUBA GEAR",
"VITAMIN X",
@ -62,7 +62,7 @@ static char *D_800E1780[8] = {
/*800E17A0*/
static char *D_800E17A0[8] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
"ARMOR",
"DIVING HELMET",
"VITAMIN X",
@ -85,7 +85,7 @@ static char *D_800E17A0[8] = {
/*800E17C0*/
static char *D_800E17C0[8] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
"",
"ON",
"USED",
@ -465,7 +465,7 @@ void func_8009542C(void)
if (ptr2->unk2[1] != 0)
{
ptr2->unk0 = 1;
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(sp10, "%s ON", ptr[1]);
#elif VERSION_FR
sprintf(sp10, "%s ACTIVE", ptr[1]);
@ -473,7 +473,7 @@ void func_8009542C(void)
}
else
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(sp10, "%s OFF", ptr[1]);
#elif VERSION_FR
sprintf(sp10, "%s DESACTIVE", ptr[1]);
@ -495,7 +495,7 @@ void func_8009542C(void)
if (ptr2->unkA[5] <= 0)
{
ptr2->unk2[5] = 0;
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(sp10, "%s OFF", ptr[5]);
#elif VERSION_FR
sprintf(sp10, "%s DESACTIVE", ptr[5]);
@ -513,7 +513,7 @@ void func_8009542C(void)
if (ptr2->unkA[6] <= 0)
{
ptr2->unk2[6] = 0;
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(sp10, "%s OFF", ptr[6]);
#elif VERSION_FR
sprintf(sp10, "%s DESACTIVE", ptr[6]);
@ -638,7 +638,7 @@ void func_8009584C(s16 playernum)
sprintf(buffer, "%s %s", ptr[ptr1->unk0], D_800E17C0[ptr1->unk0]);
else
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(buffer, "%s OFF", ptr[ptr1->unk0]);
#elif VERSION_FR
sprintf(buffer, "%s DESACTIVE", ptr[ptr1->unk0]);

View File

@ -229,7 +229,7 @@ static void func_800A0014(void)
{
cond = 0;
func_80029238(200, 200, 200, 0x80, 0x80, 0x80, D_80106D40);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString2(x, y, "KEYS");
#elif VERSION_FR
drawString2(x, y, "TOUCHES");
@ -248,7 +248,7 @@ static void func_800A0014(void)
}
if (!cond)
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString2(x, y, "NONE");
#elif VERSION_FR
drawString2(x, y, "AUCUN");
@ -257,7 +257,7 @@ static void func_800A0014(void)
}
func_80029238(200, 200, 200, 0x80, 0x80, 0x80, D_80106D40);
y += 10;
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString2(x, y, "TIME MACHINE PARTS");
#elif VERSION_FR
drawString2(x, y, "MACHINE REMONT. TPS");
@ -268,7 +268,7 @@ static void func_800A0014(void)
if ((gMapNum == MAP_WETWORLD) || (gMapNum == MAP_BOSS_HOG) ||
(gMapNum == MAP_CYBORG_SCORPION) || (gMapNum >= MAP_THE_RACK))
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString2(x, y, "NONE DETECTED");
#elif VERSION_FR
drawString2(x, y, "RIEN DECELE");
@ -276,7 +276,7 @@ static void func_800A0014(void)
}
else if (gTimeMachinePart & (1 << gMapNum))
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString2(x, y, "PART COLLECTED");
#elif VERSION_FR
drawString2(x, y, "PIECE PRISE");
@ -284,7 +284,7 @@ static void func_800A0014(void)
}
else
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString2(x, y, "PART NOT FOUND");
#elif VERSION_FR
drawString2(x, y, "PIECE NON TROUVEE");
@ -294,7 +294,7 @@ static void func_800A0014(void)
else
{
func_80029238(200, 200, 200, 0x80, 0x80, 0x80, D_80106D40);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString2(x, y, "PRIMARY GOAL");
#elif VERSION_FR
drawString2(x, y, "MISSION PRINCIPALE");
@ -307,7 +307,7 @@ static void func_800A0014(void)
{
y += 10;
func_80029238(200, 200, 200, 0x80, 0x80, 0x80, D_80106D40);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString2(x, y, "CURRENT OBJECTIVES");
#elif VERSION_FR
drawString2(x, y, "OBJECTIFS EN COURS");
@ -331,13 +331,13 @@ static void func_800A0014(void)
k++;
}
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(sp20, "TIME MACHINE PARTS %d:%d", k, 13);
#elif VERSION_FR
sprintf(sp20, "MACHINE REMONT. TPS %d:%d", k, 13);
#endif
drawString2((D_80119A94 + 80), (D_80199944 + 135), sp20);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(sp20, "SECRETS %d:%d BABES %d:%d", D_801A1958.secrets_found,
D_801A1958.secrets_total, D_801A1958.babes_saved, D_801A1958.babes_total);
#elif VERSION_FR
@ -526,7 +526,7 @@ void drawHud(void)
func_800A34CC(270, 160, 6070, 4);
func_800A34CC(50, 60, 6070, 8);
func_800A34CC(270, 60, 6070, 12);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString2(90, 150, "TEMPORAL LINK ESTABLISHED");
drawString2(90, 160, "TRANSMISSION SOURCE:");
drawString2(90, 170, "LONDON, ENGLAND 1888 AD");
@ -627,7 +627,7 @@ void drawHud(void)
drawString(-1, 200, D_8012F6E4[gPlayer[D_801B0820].skin].actor);
else if (D_800E16A0[D_801B0820] != 0)
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString(-1, 200, "RED TEAM");
#elif VERSION_FR
drawString(-1, 200, "EQUIPE ROUGE");
@ -635,7 +635,7 @@ void drawHud(void)
}
else
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString(-1, 200, "BLUE TEAM");
#elif VERSION_FR
drawString(-1, 200, "EQUIPE BLEUE");
@ -1292,7 +1292,7 @@ static void func_800A42A4(s16 playernum)
{
a = CLAMP_MAX((D_80138858[i] * 8), 0xFF);
func_80029238(D_8012DF04[playernum].r, D_8012DF04[playernum].g, D_8012DF04[playernum].b, 0, 0, 0, a);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString(-1, (72 - (i * 12)), D_8012FCB0[i]);
#elif VERSION_FR
drawString(-1, (84 - (i * 12)), D_8012FCB0[i]);
@ -1307,7 +1307,7 @@ static void func_800A42A4(s16 playernum)
{
a = CLAMP_MAX((D_80138858[playernum] * 8), 0xFF);
func_80029238(D_8012DF04[playernum].r, D_8012DF04[playernum].g, D_8012DF04[playernum].b, 0, 0, 0, a);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
drawString(-1, 78, D_8012FCB0[playernum]);
#elif VERSION_FR
drawString(-1, 90, D_8012FCB0[playernum]);
@ -1344,7 +1344,7 @@ void func_800A4478(void)
{
if (gPlayer[i].unk4E > 90)
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
func_800A419C(i, "PRESS START");
#elif VERSION_FR
func_800A419C(i, "APPUYER SUR START");

View File

@ -504,7 +504,7 @@ void audio_80006CC0(void)
}
}
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
if (gMapNum == MAP_PROBING_THE_DEPTHS)
{
if (gPlayer[0].unk50 != -1)

View File

@ -20,7 +20,7 @@
#define CONTROLLER_GET_STATUS 13
#define COMPANY_CODE 0x3458 /*4X*/
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
#define __C__ 0xFF
#define GAMECODE 0x4E445A45 /*NDZE*/
#elif defined(VERSION_FR) || defined(VERSION_EU)
@ -44,7 +44,7 @@ typedef struct {
/*.data*/
/*800E0F60*/ static char D_800E0F60[67] = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#'*+,-./:=?@";
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
/*800E0FA4*/ static char D_800E0FA4[30] = "If Rumble Paks are to be used";
/*800E0FC4*/ static char D_800E0FC4[24] = "please insert them into";
/*800E0FDC*/ static char D_800E0FDC[17] = "the Controllers.";
@ -56,7 +56,7 @@ typedef struct {
#if VERSION_EU
/*800E1038*/ static char D_800E1038[19] = "B = Attempt repair";
/*800E1040*/ static char D_800E1040[30] = "Z = Insert new controller pak";
#elif VERSION_US
#elif defined(VERSION_US) || defined(VERSION_PROTO)
/*800E1038*/ static char D_800E1038[8] = "B = Yes";
/*800E1040*/ static char D_800E1040[10] = "Z = Retry";
#endif
@ -110,7 +110,7 @@ static char D_800E1818_E2418[19] = "to save game data.";
static char D_800E182C_E242C[27] = "If you would like to use a";
static char D_800E1848_E2448[29] = "Controller Pak insert it now";
static char D_800E1868_E2468[28] = "or continue without saving.";
#elif VERSION_US
#elif defined(VERSION_US) || defined(VERSION_PROTO)
/*800E14B8*/ static char D_800E14B8[34] = "to save game data. Press START to";
/*800E14DC*/ static char D_800E14DC[25] = "continue without saving.";
#endif
@ -900,7 +900,7 @@ static u8 func_80088910(void)
{
if (D_800FE408 != 0)
{
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
func_8007FF94(D_800E1330, __C__);
func_8007FF94(D_800E1350, __C__);
#endif
@ -914,7 +914,7 @@ static u8 func_80088910(void)
}
break;
case 8:
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
func_8007FF94(D_800E1494, __C__);
func_8007FF94(D_800E14B8, __C__);
func_8007FF94(D_800E14DC, __C__);
@ -973,7 +973,7 @@ static u8 func_80088910(void)
func_8007FF94(D_800E1398, __C__);
func_8007FF94(D_800E11CC, __C__);
func_8008A370(CONTROLLER_PFS_REPAIR_ID, (intptr_t)&_contPfs[_channel], 0, 0, 0, 0, 0, 0);
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
D_800E1685 = 5;
#elif defined(VERSION_FR) || defined(VERSION_EU)
D_800E1685 = 47;
@ -1060,7 +1060,7 @@ static u8 func_80088910(void)
{
if (D_800FE408 != 0)
{
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
func_8007FF94(D_800E1330, __C__);
func_8007FF94(D_800E1350, __C__);
#endif
@ -1095,7 +1095,7 @@ static u8 func_80088910(void)
func_8007FF94(D_800E1398, __C__);
func_8007FF94(D_800E11CC, __C__);
func_8008A370(CONTROLLER_PFS_REPAIR_ID, (intptr_t)&_contPfs[_channel], 0, 0, 0, 0, 0, 0);
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
D_800E1685 = 5;
#elif defined(VERSION_FR) || defined(VERSION_EU)
D_800E1685 = 47;
@ -1172,7 +1172,7 @@ static u8 func_80088FEC(void)
switch (D_800FE408)
{
case 1:
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
func_8007FF94(D_800E1478, __C__);
func_8007FF94(D_800E1494, __C__);
func_8007FF94(D_800E14B8, __C__);
@ -1218,7 +1218,7 @@ static u8 func_80088FEC(void)
case 4:
case 5:
case 6:
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
func_8007FF94(D_800E14F8, __C__);
func_8007FF94(D_800E1494, __C__);
func_8007FF94(D_800E14B8, __C__);
@ -1291,7 +1291,7 @@ static u8 func_80088FEC(void)
{
if (D_800FE408 != 0)
{
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
func_8007FF94(D_800E1330, __C__);
func_8007FF94(D_800E1350, __C__);
#endif
@ -1306,7 +1306,7 @@ static u8 func_80088FEC(void)
}
break;
case 8:
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
func_8007FF94(D_800E1494, __C__);
func_8007FF94(D_800E14B8, __C__);
func_8007FF94(D_800E14DC, __C__);
@ -1354,7 +1354,7 @@ static u8 func_80088FEC(void)
func_8007FF94(D_800E1398, __C__);
func_8007FF94(D_800E11CC, __C__);
func_8008A370(CONTROLLER_PFS_REPAIR_ID, (intptr_t)&_contPfs[_channel], 0, 0, 0, 0, 0, 0);
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
D_800E1686 = 5;
#elif defined(VERSION_FR) || defined(VERSION_EU)
D_800E1686 = 47;
@ -1442,7 +1442,7 @@ static u8 func_80088FEC(void)
{
if (D_800FE408 != 0)
{
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
func_8007FF94(D_800E1330, __C__);
func_8007FF94(D_800E1350, __C__);
D_800E1686 = 8;
@ -1479,7 +1479,7 @@ static u8 func_80088FEC(void)
func_8007FF94(D_800E1398, __C__);
func_8007FF94(D_800E11CC, __C__);
func_8008A370(CONTROLLER_PFS_REPAIR_ID, (intptr_t)&_contPfs[_channel], 0, 0, 0, 0, 0, 0);
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
D_800E1686 = 5;
#elif defined(VERSION_FR) || defined(VERSION_EU)
D_800E1686 = 47;
@ -2330,7 +2330,7 @@ u8 controller_8008AEF0(void)
if (_channel < 0)
{
func_800800A8(6);
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
func_8007FF94(D_800E1478, __C__);
func_8007FF94(D_800E1494, __C__);
func_8007FF94(D_800E14B8, __C__);
@ -2930,7 +2930,7 @@ static u8 func_8008B8B0(void)
{
if (D_800FA2FA != 0)
{
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
func_8007FF94(D_800E1478, __C__);
func_8007FF94(D_800E1494, __C__);
func_8007FF94(D_800E14B8, __C__);

View File

@ -1182,7 +1182,7 @@ static void mainLoop(void *arg)
configInitialize();
controller_8008AD94();
controller_8008A3EC("DUKE ZERO HOUR.A", &D_801CC930.unk0, sizeof(code1UnkStruct3));
#if VERSION_US
#if defined(VERSION_US) || defined(VERSION_PROTO)
switch (osTvType)
{
case OS_TV_PAL:

View File

@ -33,7 +33,7 @@ typedef struct {
/*801CA14C*/
MapChapter gMapChapter[MAP_NUM+1] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ PRESENT_DAY, "MEAN STREETS" },
{ PRESENT_DAY, "LIBERTY OR DEATH" },
{ PRESENT_DAY, "NUCLEAR WINTER" },
@ -878,7 +878,7 @@ void func_801C1950(void)
D_801CC914->unk34 = D_801CC928;
D_801CE5E4->unk38 = D_801CE5A4;
D_801CC914->unk38 = D_801CC7F8;
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
D_801CE5E0 = func_8007FE2C("PRESS START", gScreenWidth / 2, gScreenHeight - 48, 64, 1, 0);
#elif VERSION_FR
D_801CE5E0 = func_8007FE2C("APPUYER SUR START", gScreenWidth / 2, gScreenHeight - 48, 64, 1, 0);
@ -1044,7 +1044,7 @@ static void _menuExit(void)
/*801CA3D8*/
static code1UnkStruct5 D_801CA3D8[5] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "IF RUMBLE PAKS ARE", NULL, NULL, NULL, NULL },
{ 1, -1, 1, 0, "TO BE USED, PLEASE", NULL, NULL, NULL, NULL },
{ 1, -1, 1, 0, "INSERT THEM INTO", NULL, NULL, NULL, NULL },
@ -1195,7 +1195,7 @@ void func_801C3524(void)
/*801CA474*/
static code1UnkStruct5 D_801CA474[3] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "2", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "3", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "4", NULL, NULL, NULL, NULL },
@ -1210,7 +1210,7 @@ static code1UnkStruct5 D_801CA474[3] = {
/*801CA4D8*/
static code1UnkStruct5 D_801CA4D8[11] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "DEFAULT", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "a", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "b", NULL, NULL, NULL, NULL },
@ -1241,7 +1241,7 @@ static code1UnkStruct5 D_801CA4D8[11] = {
/*801CA61C*/
static code1UnkStruct5 D_801CA61C[3] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "LOW", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "MEDIUM", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "HIGH", NULL, NULL, NULL, NULL },
@ -1256,7 +1256,7 @@ static code1UnkStruct5 D_801CA61C[3] = {
/*801CA680*/
static code1UnkStruct5 D_801CA680[8] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "DUKE", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "ATOMIC", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "SHAKEN", NULL, NULL, NULL, NULL },
@ -1281,7 +1281,7 @@ static code1UnkStruct5 D_801CA680[8] = {
/*801CA770*/
static code1UnkStruct5 D_801CA770[2] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "OFF", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "ON", NULL, NULL, NULL, NULL },
#elif VERSION_FR
@ -1303,7 +1303,7 @@ static code1UnkStruct6 _ouiNon = {ARRAY_COUNT(_ouiNonElmt), _ouiNonElmt, 0, 0, N
/*801CA7B8*/
static code1UnkStruct5 D_801CA7B8[2] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "HORZ", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "VERT", NULL, NULL, NULL, NULL },
#elif VERSION_FR
@ -1316,7 +1316,7 @@ static code1UnkStruct5 D_801CA7B8[2] = {
/*801CA800*/
static code1UnkStruct5 D_801CA800[2] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "EQUAL", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "FULL", NULL, NULL, NULL, NULL },
#elif VERSION_FR
@ -1329,7 +1329,7 @@ static code1UnkStruct5 D_801CA800[2] = {
/*801CA848*/
static code1UnkStruct5 D_801CA848[2] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "MONO", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "STEREO", NULL, NULL, NULL, NULL },
#elif VERSION_FR
@ -1342,7 +1342,7 @@ static code1UnkStruct5 D_801CA848[2] = {
/*801CA890*/
static code1UnkStruct5 D_801CA890[8] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 0, 332, 0, 0, "^OFF", NULL, NULL, NULL, NULL },
{ 0, 332, 0, 0, "~}|", NULL, NULL, NULL, NULL },
{ 0, 332, 0, 0, "~}}|", NULL, NULL, NULL, NULL },
@ -1367,7 +1367,7 @@ static code1UnkStruct5 D_801CA890[8] = {
/*801CA980*/
static code1UnkStruct5 D_801CA980[3] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "NORMAL", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "MEDIUM", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "HIGHRES", NULL, NULL, NULL, NULL },
@ -1382,7 +1382,7 @@ static code1UnkStruct5 D_801CA980[3] = {
/*801CA9E4*/
static code1UnkStruct5 D_801CA9E4[2] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "CONFIGURATION", NULL, NULL, NULL, NULL },
{ 0, 16, 0, 0, "PRESET", NULL, NULL, &D_801CA760, gConfig.controller_preset },
#elif VERSION_FR
@ -1395,7 +1395,7 @@ static code1UnkStruct5 D_801CA9E4[2] = {
/*801CAA2C*/
static code1UnkStruct5 D_801CAA2C[5] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "PLAYER SETUP", NULL, NULL, NULL, NULL },
{ 1, -1, 0, 0, "CONTROL CONFIGURATION", _menuControllerConfig, &D_801CAA1C, NULL, NULL, },
{ 0, 0, 0, 0, "CROSSHAIR", NULL, NULL, &D_801CA60C, gConfig.crosshair },
@ -1414,7 +1414,7 @@ static code1UnkStruct5 D_801CAA2C[5] = {
/*801CAAC8*/
static code1UnkStruct5 D_801CAAC8[4] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 0, 0, "PLAYER ONE", _menuSelectPlayer, &D_801CAAB8, NULL, NULL },
{ 1, -1, 0, 0, "PLAYER TWO", _menuSelectPlayer, &D_801CAAB8, NULL, NULL },
{ 1, -1, 0, 0, "PLAYER THREE", _menuSelectPlayer, &D_801CAAB8, NULL, NULL },
@ -1431,7 +1431,7 @@ static code1UnkStruct5 D_801CAAC8[4] = {
/*801CAB48*/
static code1UnkStruct5 D_801CAB48[8] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "OPTIONS", NULL, NULL, NULL, NULL },
{ 0, 0, 0, 0, "SFX VOLUME", NULL, NULL, &D_801CA970, &gConfig.mastervol },
{ 0, 0, 0, 0, "MUSIC VOLUME", NULL, NULL, &D_801CA970, &gConfig.musicvol },
@ -1456,7 +1456,7 @@ static code1UnkStruct5 D_801CAB48[8] = {
/*801CAC38*/
static code1UnkStruct5 D_801CAC38[12] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "OFF", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "5", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "10", NULL, NULL, NULL, NULL },
@ -1489,7 +1489,7 @@ static code1UnkStruct5 D_801CAC38[12] = {
/*801CAD98*/
static code1UnkStruct5 D_801CAD98[8] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, 280, 0, 0, "OFF", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "5", NULL, NULL, NULL, NULL },
{ 1, 280, 0, 0, "10", NULL, NULL, NULL, NULL },
@ -1514,7 +1514,7 @@ static code1UnkStruct5 D_801CAD98[8] = {
/*801CAE88*/
static code1UnkStruct5 D_801CAE88[6] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "SELECT GAME TYPE", NULL, NULL, NULL, NULL },
{ 1, -1, 1, 0, &D_801CA148, NULL, NULL, NULL, NULL },
{ 1, -1, 0, 0, "DUKEMATCH", _menuMultiplayerSelectLevel, NULL, NULL, NULL },
@ -1535,7 +1535,7 @@ static code1UnkStruct5 D_801CAE88[6] = {
/*801CAF40*/
static code1UnkStruct5 D_801CAF40[9] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "MULTIPLAYER OPTIONS", NULL, NULL, NULL, NULL },
{ 0, 0, 0, 0, "PLAYERS", NULL, NULL, &D_801CA4C8, &gConfig.multiplayer.players },
{ 0, 0, 0, 0, "TIME LIMIT", NULL, NULL, &D_801CAE78, &gConfig.multiplayer.time_limit },
@ -1562,7 +1562,7 @@ static code1UnkStruct5 D_801CAF40[9] = {
/*801CB04C*/
static code1UnkStruct5 D_801CB04C[4] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "SELECT DIFFICULTY", NULL, NULL, NULL, NULL },
{ 1, -1, 1, 0, &D_801CA148, NULL, NULL, NULL, NULL },
{ 1, -1, 0, 0, "NORMAL", _menuSelectDifficulty, NULL, NULL, NULL },
@ -1579,7 +1579,7 @@ static code1UnkStruct5 D_801CB04C[4] = {
/*801CB0CC*/
static code1UnkStruct5 D_801CB0CC[4] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "SELECT", NULL, NULL, NULL, NULL },
{ 1, -1, 1, 0, &D_801CA148, NULL, NULL, NULL, NULL },
{ 1, -1, 0, 0, "SINGLE PLAYER", _menuEnter, &D_801CB0BC, NULL, NULL },
@ -1596,7 +1596,7 @@ static code1UnkStruct5 D_801CB0CC[4] = {
/*801CB14C*/
static code1UnkStruct5 D_801CB14C[12] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 0, -16, 2, 0, "SMG", NULL, NULL, &D_801CA7A8, &gCheatWeaponSmgConfig },
{ 0, -16, 2, 0, "BLASTER", NULL, NULL, &D_801CA7A8, &gCheatWeaponBlasterConfig },
{ 0, -16, 2, 0, "SNIPER", NULL, NULL, &D_801CA7A8, &gCheatWeaponSniperConfig },
@ -1629,7 +1629,7 @@ static code1UnkStruct5 D_801CB14C[12] = {
/*801CB2AC*/
static code1UnkStruct5 D_801CB2AC[4] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 0, -16, 2, 0, "FIRST PERSON", NULL, NULL, &D_801CA7A8, &gCheatFirstPersonConfig },
{ 0, -16, 2, 0, "ACTION NUKEM", NULL, NULL, &D_801CA7A8, &gCheatActionNukemConfig },
{ 0, -16, 2, 0, "SELECT SKIN", NULL, NULL, &D_801CA7A8, &gCheatSelectSkinConfig },
@ -1646,7 +1646,7 @@ static code1UnkStruct5 D_801CB2AC[4] = {
/*801CB32C*/
static code1UnkStruct5 D_801CB32C[7] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 0, -16, 2, 0, "BIG HEAD MODE", NULL, NULL, &D_801CA7A8, &gCheatBigHeadModeConfig },
{ 0, -16, 2, 0, "FLAT SHADING", NULL, NULL, &D_801CA7A8, &gCheatFlatShadingConfig },
{ 0, -16, 2, 0, "WEATHER", NULL, NULL, &D_801CA7A8, &gCheatWeatherConfig },
@ -1669,7 +1669,7 @@ static code1UnkStruct5 D_801CB32C[7] = {
/*801CB400*/
static code1UnkStruct5 D_801CB400[5] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "CHEATS", NULL, NULL, NULL, NULL },
{ 1, -1, 0, 0, "WEAPONS", _menuEnter, &D_801CB29C, NULL, NULL },
{ 1, -1, 0, 0, "GAME TYPE", _menuEnter, &D_801CB31C, NULL, NULL },
@ -1688,7 +1688,7 @@ static code1UnkStruct5 D_801CB400[5] = {
/*801CB49C*/
static code1UnkStruct5 D_801CB49C[5] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, D_801CDBB0, NULL, NULL, NULL, NULL },
{ 1, -1, 0, 0, "START GAME", _menuEnter, &D_801CB13C, NULL, NULL },
{ 1, -1, 0, 0, "LOAD GAME", _menuLoadGame, NULL, NULL, NULL },
@ -1707,7 +1707,7 @@ static code1UnkStruct5 D_801CB49C[5] = {
/*801CB538*/
code1UnkStruct5 D_801CB538[9] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 0, -16, 0, 0, "SFX VOLUME", NULL, NULL, &D_801CA970, &gConfig.mastervol },
{ 0, -16, 0, 0, "MUSIC VOLUME", NULL, NULL, &D_801CA970, &gConfig.musicvol },
{ 0, -16, 0, 0, "SOUND", NULL, NULL, &D_801CA880, &gConfig.sound },
@ -1734,7 +1734,7 @@ code1UnkStruct5 D_801CB538[9] = {
/*801CB644*/
static code1UnkStruct5 D_801CB644[3] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "QUIT GAME?", NULL, NULL, NULL, NULL },
{ 1, -1, 0, 0, "NO", _menuBack, NULL, NULL, NULL },
{ 1, -1, 0, 0, "YES", func_801C3874, NULL, NULL, NULL },
@ -1749,7 +1749,7 @@ static code1UnkStruct5 D_801CB644[3] = {
/*801CB6A8*/
static code1UnkStruct5 D_801CB6A8[2] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 0, 0, "CONTINUE GAME", func_801C392C, NULL, NULL, NULL },
{ 1, -1, 0, 0, "RESTART LEVEL", func_801C38DC, NULL, NULL, NULL },
#elif VERSION_FR
@ -1762,7 +1762,7 @@ static code1UnkStruct5 D_801CB6A8[2] = {
/*801CB6F0*/
static code1UnkStruct5 D_801CB6F0[2] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 0, 0, "REPLAY SAVED GAME", func_801C399C, NULL, NULL, NULL },
{ 1, -1, 0, 0, "RESTART LEVEL", func_801C3974, NULL, NULL, NULL },
#elif VERSION_FR
@ -1775,7 +1775,7 @@ static code1UnkStruct5 D_801CB6F0[2] = {
/*801CB738*/
static code1UnkStruct5 D_801CB738[3] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "RESTART LEVEL?", NULL, NULL, NULL, NULL },
{ 1, -1, 0, 0, "NO", _menuBack, NULL, NULL, NULL },
{ 1, -1, 0, 0, "YES", _menuEnter, &D_801CB728, NULL, NULL },
@ -1790,7 +1790,7 @@ static code1UnkStruct5 D_801CB738[3] = {
/*801CB79C*/
static code1UnkStruct5 D_801CB79C[3] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 1, 0, "RESTART LEVEL?", NULL, NULL, NULL, NULL },
{ 1, -1, 0, 0, "NO", _menuBack, NULL, NULL, NULL },
{ 1, -1, 0, 0, "YES", func_801C38DC, NULL, NULL, NULL },
@ -1805,7 +1805,7 @@ static code1UnkStruct5 D_801CB79C[3] = {
/*801CB800*/
static code1UnkStruct5 D_801CB800[4] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 0, 0, "CONTINUE", _menuBack, NULL, NULL, NULL },
{ 1, -1, 0, 0, "OPTIONS", _menuEnter, &D_801CB634, NULL, NULL },
{ 1, -1, 0, 0, "RESTART", _menuEnter, &D_801CB78C, NULL, NULL },
@ -1822,7 +1822,7 @@ static code1UnkStruct5 D_801CB800[4] = {
/*801CB880*/
static code1UnkStruct5 D_801CB880[4] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 0, 0, "CONTINUE", _menuBack, NULL, NULL, NULL },
{ 1, -1, 0, 0, "OPTIONS", _menuEnter, &D_801CB634, NULL, NULL },
{ 1, -1, 0, 0, "RESTART", _menuEnter, &D_801CB7F0, NULL, NULL },
@ -1839,7 +1839,7 @@ static code1UnkStruct5 D_801CB880[4] = {
/*801CB900*/
static code1UnkStruct5 D_801CB900[2] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ 1, -1, 0, 0, "SAVE", _menuSaveGame, NULL, NULL, NULL },
{ 1, -1, 0, 0, "CONTINUE WITHOUT SAVING", func_801C39C4, NULL, NULL, NULL },
#elif VERSION_FR
@ -2673,7 +2673,7 @@ void func_801C542C(void)
D_801CC88C = -1;
D_801CF6E0[0] = func_800802C0(gMapChapter[gMapNum].mapname, gScreenWidth / 2, -12, 180, 1);
func_801C14C4(D_801CF6E0[0], 32, 0xFF, 32);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
D_801CF6E0[1] = func_800802C0("TIME TAKEN:", 0, 65, 200, 0);
D_801CF6E0[2] = func_800802C0("KILLS:", 0, 87, 200, 0);
D_801CF6E0[3] = func_800802C0("BABES:", 0, 109, 200, 0);
@ -2714,7 +2714,7 @@ void func_801C542C(void)
if (_cheatAwarded)
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
D_801CF6E0[6] = func_8007FE2C("CHEAT AWARDED", gScreenWidth/2, 128, 200, 1, 0);
#elif VERSION_FR
D_801CF6E0[6] = func_8007FE2C("TRUC OFFERT", gScreenWidth/2, 128, 200, 1, 0);
@ -2727,7 +2727,7 @@ void func_801C542C(void)
if (gTimeMachinePart & (1 << gMapNum))
{
D_801CE59C = 1;
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
D_801CF6E0[7] = func_8007FE2C("TIME MACHINE PART FOUND",
gScreenWidth / 2, (gScreenHeight / 2) + 96, 200, 1, 0);
#elif VERSION_FR
@ -2737,7 +2737,7 @@ void func_801C542C(void)
}
else
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
D_801CF6E0[7] = func_8007FE2C("TIME MACHINE PART NOT FOUND",
gScreenWidth / 2, (gScreenHeight / 2) + 96, 200, 1, 0);
#elif VERSION_FR
@ -2823,7 +2823,7 @@ void func_801C542C(void)
}
/*801CB960*/ static char *D_801CB960[4] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
"PLAYER 1 WINS",
"PLAYER 2 WINS",
"PLAYER 3 WINS",
@ -2842,7 +2842,7 @@ typedef struct {
} _EB300UnkStruct3;
/*801CB970*/ static _EB300UnkStruct3 D_801CB970 = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{"PLAYER 1", "PLAYER 2", "PLAYER 3", "PLAYER 4"},
{"BLUE", "RED"},
#elif VERSION_FR
@ -2881,7 +2881,7 @@ static void func_801C5C68(void)
D_801CC88C = -1;
D_801CF6E0[0] = func_800802C0(gMapChapter[gMapNum].mapname, gScreenWidth / 2, 24, 200, 1);
func_801C14C4(D_801CF6E0[0], 32, 0xFF, 32);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
D_801CF6E0[1] = func_800802C0("PRESS START TO ENTER", gScreenWidth/2, 186, 200, 1);
#elif VERSION_FR
D_801CF6E0[1] = func_800802C0("APPUYEZ SUR START POUR", gScreenWidth/2, 186, 200, 1);
@ -2933,7 +2933,7 @@ static void func_801C5C68(void)
D_801CF6E0[3] = func_800802C0(D_801CB960[n], gScreenWidth/2, 102, 200, 1);
else
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
D_801CF6E0[3] = func_800802C0("DRAW", gScreenWidth/2, 102, 200, 1);
#elif VERSION_FR
D_801CF6E0[3] = func_800802C0("MATCH NUL", gScreenWidth/2, 102, 200, 1);
@ -3074,7 +3074,7 @@ void func_801C66D8(void)
func_801C1114();
func_801C1158(0, 0, 0, 0xFF);
D_801CC88C = -1;
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
func_8007FE2C("EXPANSION PAK FOUND", gScreenWidth / 2, (gScreenHeight / 2) + 150, 0, i, 0);
#elif VERSION_FR
func_8007FE2C("PACK D'EXTENSION DETECTE", gScreenWidth / 2, (gScreenHeight / 2) + 150, 0, i, 0);
@ -3698,7 +3698,7 @@ void func_801C764C(void)
D_800E0F58 = 1;
func_8007FD8C(&D_800DFB08[0], 11);
func_8007FD8C(&D_800E047C[0], 14);
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
func_800802C0("SELECT LEVEL", gScreenWidth/2, 24, 64, 1);
#elif VERSION_FR
func_800802C0("CHOISIR NIVEAU", gScreenWidth/2, 24, 64, 1);
@ -3727,7 +3727,7 @@ void func_801C764C(void)
D_801CA3D4 = gScreenHeight/2 + 100;
D_801CC8B0 = func_8007FE2C(gMapChapter[D_801CE5DC].mapname, gScreenWidth / 2, D_801CA3D4, 64, 1, 0);
D_801CA3D4 += 12;
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
D_801CF6E0[1] = func_8007FE2C("TIME TAKEN:", 48, D_801CA3D4 + 12, 64, 0, 0);
D_801CF6E0[2] = func_8007FE2C("KILLS:", 48, D_801CA3D4 + 24, 64, 0, 0);
D_801CF6E0[3] = func_8007FE2C("BABES:", 48, D_801CA3D4 + 36, 64, 0, 0);
@ -3760,7 +3760,7 @@ void func_801C764C(void)
if ((D_801CE5DC == MAP_WETWORLD) || (D_801CE5DC == MAP_BOSS_HOG) ||
(D_801CE5DC == MAP_CYBORG_SCORPION) || (D_801CE5DC >= MAP_THE_RACK))
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(D_801CDB58[5], "NONE");
#elif VERSION_FR
sprintf(D_801CDB58[5], "AUCUN");
@ -3846,7 +3846,7 @@ void func_801C764C(void)
if ((D_801CE5DC == MAP_WETWORLD) || (D_801CE5DC == MAP_BOSS_HOG) ||
(D_801CE5DC == MAP_CYBORG_SCORPION) || (D_801CE5DC >= MAP_THE_RACK))
{
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
sprintf(D_801CDB58[5], "NONE");
#elif VERSION_FR
sprintf(D_801CDB58[5], "AUCUN");
@ -3965,7 +3965,7 @@ static void func_801C8650(void)
func_80083700(1, &D_801CE5E8[i], 0, 0);
D_800E0F58 = 1;
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
func_800802C0("SELECT LEVEL", (gScreenWidth / 2), 24, 64, 1);
#elif VERSION_FR
func_800802C0("CHOISIR NIVEAU", (gScreenWidth / 2), 24, 64, 1);
@ -4085,7 +4085,7 @@ void func_801C899C(void)
/*801CBCA8*/
static char *D_801CBCA8[16] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
"TURN LEFT",
"TURN RIGHT",
"MOVE FORWARD",

View File

@ -109,7 +109,7 @@ u8 D_01022790[512] = {
/*01022990*/
ControlMapping gControlPreset[8] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{
{
"CONTROL STICK LEFT",

View File

@ -560,7 +560,7 @@ static s32 _unused = 0;
/*01025BA0*/
_11B300UnkStruct1 D_01025BA0[0x1D] = {
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
{ DUKENUKEM, 0x3B7, "DUKE NUKEM", 2, 0x64, 0x50, 0 },
{ APOCALYPSEDUKE, 0x3A5, "APOCALYPSE DUKE", 2, 0x64, 0x50, 0 },
{ COWBOYDUKE, 0x4B2, "COWBOY DUKE", 2, 0x64, 0x50, 0 },

View File

@ -2,7 +2,7 @@
#include "code0/code0.h"
#include "static/strinfo.h"
#if defined(VERSION_US) || defined(VERSION_EU)
#if defined(VERSION_US) || defined(VERSION_EU) || defined(VERSION_PROTO)
/*.data*/
/*01021560*/

View File

@ -219,7 +219,7 @@ def objdump(file, section):
return o1,o2
if __name__ == "__main__":
VERSION = 'eu'
VERSION = 'proto'
name_max_size = 0
source_file=sys.argv[1]

View File

@ -0,0 +1,112 @@
name: Duke Nukem Zero Hour (Prototype)
sha1: 0fe108c66384dcfebb395f767ac5fa6a842d07f0
options:
basename: dukenukemzerohour
base_path: ../..
target_path: baserom.proto.z64
compiler: GCC
find_file_boundaries: False
header_encoding: ASCII
platform: n64
create_undefined_funcs_auto: False
create_undefined_syms_auto: True
undefined_funcs_auto_path: linker_scripts/proto/undefined_funcs_auto.txt
undefined_syms_auto_path: linker_scripts/proto/undefined_syms_auto.txt
symbol_addrs_path: "versions/proto/symbol_addrs.txt"
reloc_addrs_path: versions/proto/reloc_addrs.txt
hasm_in_src_path: True
asm_path: asm/proto
src_path: .
data_path: data
nonmatchings_path : nonmatchings
asset_path: assets/proto
ld_script_path: linker_scripts/proto/dukenukemzerohour.ld
build_path: BUILD_PATH
ld_symbol_header_path: gen/proto/ld_symbols.h
# extensions_path: tools/splat_ext
# mips_abi_float_regs: o32
# section_order: [".text", ".data", ".rodata", ".bss"]
asm_inc_header: ""
migrate_rodata_to_functions: False
add_set_gp_64: False
generated_c_preamble: "#include \"common.h\"\n\n/*.text*/"
use_legacy_include_asm: False
ld_wildcard_sections: True
asm_emit_size_directive: False
ld_discard_section: False
symbol_name_format: $VRAM_$ROM
ld_generate_symbol_per_data_segment: True
auto_link_sections: []
ld_sections_denylist:
- .text
- .rodata
- .bss
- .COMMON
- .data
- .MIPS.abiflags
- .reginfo
- .rel.dyn
- .debug
segments:
- name: header
type: header
start: 0x0
- name: boot
type: bin
start: 0x40
- name: code0
type: code
start: 0x1000
vram: 0x80000400
subalign: null
bss_size: 0xD6680
bss_contains_common: True
subsegments:
#.text section
- [0x1000, hasm, src/code0/entrypoint]
- [0x1050, asm, src/code0/code0]
- [0xBBE80, bin, ucode/rspboot.text]
- [0xBBF50, bin, ucode/gspF3DEX2.NoN.fifo.text]
- [0xBD2E0, bin, ucode/aspMain.text]
#.data section
- [0xBE100, data, src/code0/code0]
- [0xE49B0, bin, ucode/gspF3DEX2.NoN.fifo.data]
- [0xE4DD0, bin, ucode/aspMain.data]
#.rodata section
- [0xE5090, rodata, src/code0/code0]
#.bss section
- {start: 0xEB390, type: bss, vram: 0x800EA790, name: src/code0/code0}
- name: code1
type: code
start: 0xEB390
follows_vram: code0
vram: 0x801C0E10
bss_size: 0x2F30
bss_contains_common: True
subalign: null
subsegments:
#.text section
- [0xEB390, asm, src/code1/EB300]
#.data section
- [0xF46F0, data, src/code1/code1]
#.rodata section
- [0xF62D0, rodata, src/code1/code1]
#.bss section
- {start: 0xF6D80, type: bss, vram: 0x801CC800, name: src/code1/code1}
- name: static
type: code
start: 0xF6D80
vram: 0x01000000
subalign: 4 #Is it?
subsegments:
- {start: 0xF6D80, type: data, vram: 0x01000000, name: src/static/static}
- {start: 0x11D7F0, type: rodata, vram: 0x01026A70, name: src/static/static}
- [0x11FCF0, bin, assets]
- [0x1FCBE50]

View File

@ -0,0 +1,7 @@
func_80000000 = 0x80000000; // ignore:true
D_80000004 = 0x80000004; // ignore:true
D_80000008 = 0x80000008; // ignore:true
D_8000000C = 0x8000000C; // ignore:true
start = 0x80000400; // type:func
boot = 0x800008BC; // type:func
D_80118260 = 0x801182F0; // size:0x17D0

View File

@ -0,0 +1 @@
func_80000000 = 0x80000000;

View File

@ -0,0 +1,50 @@
rspbootTextStart = _binary_assets_proto_ucode_rspboot_text_bin_start;
rspbootTextEnd = _binary_assets_proto_ucode_rspboot_text_bin_end;
gspF3DLX2_NoN_fifoTextStart = _binary_assets_proto_ucode_gspF3DEX2_NoN_fifo_text_bin_start;
gspF3DLX2_NoN_fifoTextEnd = _binary_assets_proto_ucode_gspF3DEX2_NoN_fifo_text_bin_end;
aspMainTextStart = _binary_assets_proto_ucode_aspMain_text_bin_start;
aspMainTextEnd = _binary_assets_proto_ucode_aspMain_text_bin_end;
gspF3DEX2_NoN_fifoDataStart = _binary_assets_proto_ucode_gspF3DEX2_NoN_fifo_data_bin_start;
gspF3DEX2_NoN_fifoDataEnd = _binary_assets_proto_ucode_gspF3DEX2_NoN_fifo_data_bin_end;
aspMainDataStart = _binary_assets_proto_ucode_aspMain_data_bin_start;
aspMainDataEnd = _binary_assets_proto_ucode_aspMain_data_bin_end;
gTileInfo_STATIC_START = 0x19C0;
gWeaponStrInfo_STATIC_START = 0x21560;
gWeaponStrInfoCount_STATIC_START = 0x21754;
gKeyStrInfo_STATIC_START = 0x21D58;
gObjectiveStrInfo_STATIC_START = 0x21F30;
gMapStrInfo_STATIC_START = 0x21FF0;
gActionStrInfo_STATIC_START = 0x22050;
gActionStrInfoCount_STATIC_START = 0x22094;
gLicenceStrInfo_STATIC_START = 0x2209C;
gLicenceStrInfoCount_STATIC_START = 0x22128;
gCreditStrInfo_STATIC_START = 0x2212C;
gCreditStrInfoCount_STATIC_START = 0x2250C;
D_01022510_STATIC_START = 0x22510;
D_01022790_STATIC_START = 0x22790;
gControlPreset_STATIC_START = 0x22990;
gSinTable_STATIC_START = 0x22B90;
gRadarang_STATIC_START = 0x23B90;
D_01024590_STATIC_START = 0x24590;
D_010245E8_STATIC_START = 0x245E8;
D_0102464C_STATIC_START = 0x2464C;
D_010247AC_STATIC_START = 0x247AC;
D_01025734_STATIC_START = 0x25734;
D_0102578C_STATIC_START = 0x2578C;
D_0102583C_STATIC_START = 0x2583C;
D_01025840_STATIC_START = 0x25840;
D_010258D8_STATIC_START = 0x258D8;
D_01025908_STATIC_START = 0x25908;
D_01025968_STATIC_START = 0x25968;
gGlobalPalette_STATIC_START = 0x259B0;
gAlphaPalette_STATIC_START = 0x25AAC;
D_01025BA0_STATIC_START = 0x25BA0;
D_01025CFC_STATIC_START = 0x25CFC;
gMapInfo_STATIC_START = 0x25D00;
D_01026910_STATIC_START = 0x26910;
D_0100F1E0_STATIC_START = 0xF1E0;