Skip to content

Commit f2aff50

Browse files
committed
- fix compilation with Emscripten, make it more effortless; fix crashes
1 parent 4e95f6d commit f2aff50

12 files changed

Lines changed: 40 additions & 24 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
*.code-workspace
2626
.vscode/*
2727
.vs/*
28+
game/*
29+
webdemo/*
2830
PSXToolchain/GameSRC*
2931
PSXToolchain/Overlay*
3032
PSXToolchain/PsyQ/*

src_rebuild/Game/C/civ_ai.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2224,6 +2224,14 @@ int PingInCivCar(int minPingInDist)
22242224
if (minPingInDist == 666)
22252225
model = MAX_CAR_RESIDENT_MODELS - 1;
22262226

2227+
#if MAX_CAR_RESIDENT_MODELS == 6
2228+
// [A] fix crashes on missing models
2229+
if(!gCarCleanModelPtr[model])
2230+
{
2231+
return 0;
2232+
}
2233+
#endif
2234+
22272235
// select car color palette
22282236
if (residentCarModels[model] == 0 || residentCarModels[model] > 4)
22292237
{

src_rebuild/Game/C/event.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2170,7 +2170,7 @@ void StepPathEvent(EVENT* ev)
21702170
{
21712171
// [A] preserve direction flag or train will get stuck
21722172
// i might have been decompiled it wrong but now it works
2173-
// also preserve collision if it has one (for vegas trains)
2173+
// also preserve collision flag
21742174
dir = ev->flags & 0x600;
21752175

21762176
InitTrain(ev, 0, GameLevel == 0 ? 0 : 1);

src_rebuild/Game/C/felony.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ extern FELONY_DATA felonyData;
1414
extern void InitFelonySystem(); // 0x0004D280
1515
extern void CheckPlayerMiscFelonies(); // 0x0004CC28
1616

17-
extern int GetHeading(int direction); // 0x0004D420
18-
1917
extern char GetCarDirectionOfTravel(CAR_DATA* cp); // 0x0004D430
2018
extern char GetPlayerDirectionOfTravel(PLAYER* pl);
2119

src_rebuild/Game/Frontend/FEmain.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,7 @@ PSXSCREEN* pScreenStack[10] = { 0 };
703703
PSXBUTTON* pButtonStack[10] = { 0 };
704704

705705
POLY_FT4 BackgroundPolys[6];
706+
POLY_F4 BackgroundBlack;
706707
FE_FONT feFont;
707708

708709
RECT16 extraRect = { 896, 256, 64, 219 };
@@ -844,6 +845,7 @@ void SetVariable(int var)
844845
void SetupBackgroundPolys(void)
845846
{
846847
POLY_FT4 *poly;
848+
POLY_F4* bg;
847849
int i;
848850

849851
for (i = 0; i < 6; i++)
@@ -889,6 +891,11 @@ void SetupBackgroundPolys(void)
889891
setUVWH(poly, 0, 0, 128, 255);
890892
setClut(poly, 960, 256);
891893
setTPage(poly, 0, 0, 960, 0);
894+
895+
bg = &BackgroundBlack;
896+
setPolyF4(bg);
897+
setXYWH(bg, -1000, 0, 2000, 512);
898+
setRGB0(bg, 0, 0, 0);
892899
}
893900

894901
SPRT HighlightSprt;
@@ -1054,7 +1061,8 @@ void DrawScreen(PSXSCREEN *pScr)
10541061

10551062
for (i = 0; i < 6; i++)
10561063
addPrim(current->ot + 11, &BackgroundPolys[i]);
1057-
1064+
addPrim(current->ot + 11, &BackgroundBlack);
1065+
10581066
if (pScr)
10591067
{
10601068
GetTimeStamp(version_info);

src_rebuild/Game/driver2.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,13 @@
2626

2727
#include "platform.h"
2828

29-
#define USE_PC_FILESYSTEM (!defined(PSX)) // PC filesystem is prioritized over CD
30-
#define USE_CD_FILESYSTEM 1 // use always
29+
#ifdef PSX
30+
#define USE_PC_FILESYSTEM 0
31+
#else
32+
#define USE_PC_FILESYSTEM 1 // PC filesystem is prioritized over CD
33+
#endif
34+
35+
#define USE_CD_FILESYSTEM 1 // use always
3136
#define ENABLE_MISSION_FIXES 1
3237
#define ENABLE_GAME_FIXES 1
3338
#define ENABLE_GAME_ENCHANCEMENTS 1

src_rebuild/gen_emcc.bat

Lines changed: 0 additions & 5 deletions
This file was deleted.

src_rebuild/gen_emcc.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
./premake5 gmake2 --os=emscripten

src_rebuild/platform/Emscripten/emscripten_exports.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ extern "C" {
1313

1414
void EMSCRIPTEN_KEEPALIVE WebLoadCDImage(char* data, int size)
1515
{
16-
PsyX_CDFS_Init_Mem((u_long*)data, size, 0, 0);
16+
PsyX_CDFS_Init_Mem((u_int*)data, size, 0, 0);
1717
}
1818
}

0 commit comments

Comments
 (0)