Compare commits

...
3 Commits
Author SHA1 Message Date
dkeruza efe34307e3 Merge pull request #78 from lindbergh-loader/neo-pr-test
Neo-pr-test
2025-03-30 21:44:06 -04:00
dkeruza-neo 11b657e961 Update changelog 2025-03-30 21:26:00 -04:00
dkeruza-neo 5ea59a05fd Fix Outrun 2 high scores. 2025-03-30 20:58:52 -04:00
3 changed files with 81 additions and 0 deletions
+2
View File
@@ -6,12 +6,14 @@ on:
paths-ignore: paths-ignore:
- '**.md' - '**.md'
- '.github/ISSUE_TEMPLATE/*' - '.github/ISSUE_TEMPLATE/*'
- '.docs/changelog'
push: push:
branches: branches:
- master - master
paths-ignore: paths-ignore:
- '**.md' - '**.md'
- '.github/ISSUE_TEMPLATE/*' - '.github/ISSUE_TEMPLATE/*'
- '.docs/changelog'
jobs: jobs:
linux-build: linux-build:
+5
View File
@@ -2,6 +2,11 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## [2.0.6]
### Fixed
- Reverted (Fixed LGJ, VT3 and ID4/ID5 JVS passthrough).
- Outrun 2 High Scores.
## [2.0.5] ## [2.0.5]
### Fixed ### Fixed
- Fixed LGJ, VT3 and ID4/ID5 JVS passthrough. - Fixed LGJ, VT3 and ID4/ID5 JVS passthrough.
+74
View File
@@ -337,9 +337,67 @@ DIR *opendir(const char *dirname)
return _opendir(dirname + 1); return _opendir(dirname + 1);
} }
} }
// Fix for Outrun high scores
switch (gId)
{
case OUTRUN_2_SP_SDX:
case OUTRUN_2_SP_SDX_REVA:
case OUTRUN_2_SP_SDX_TEST:
case OUTRUN_2_SP_SDX_REVA_TEST:
case OUTRUN_2_SP_SDX_REVA_TEST2:
{
if (strcmp(dirname, "/home/disk1/rankingdata") == 0)
{
return _opendir("./rankingdata");
}
}
}
return _opendir(dirname); return _opendir(dirname);
} }
int remove(const char *path)
{
int (*_remove)(const char *path) = dlsym(RTLD_NEXT, "remove");
switch (gId)
{
case OUTRUN_2_SP_SDX:
case OUTRUN_2_SP_SDX_REVA:
case OUTRUN_2_SP_SDX_TEST:
case OUTRUN_2_SP_SDX_REVA_TEST:
case OUTRUN_2_SP_SDX_REVA_TEST2:
{
if (strcmp(path, "/home/disk1/rankingdata/%s") == 0)
{
return _remove("./rankingdata/%s");
}
}
}
return _remove(path);
}
int mkdir(const char *path, mode_t mode)
{
int (*_mkdir)(const char *path, mode_t mode) = dlsym(RTLD_NEXT, "mkdir");
switch (gId)
{
case OUTRUN_2_SP_SDX:
case OUTRUN_2_SP_SDX_REVA:
case OUTRUN_2_SP_SDX_TEST:
case OUTRUN_2_SP_SDX_REVA_TEST:
case OUTRUN_2_SP_SDX_REVA_TEST2:
{
if (strcmp(path, "/home/disk1/rankingdata") == 0)
{
return _mkdir("./rankingdata", mode);
}
}
}
return _mkdir(path, mode);
}
int __xstat64(int ver, const char *path, struct stat64 *stat_buf) int __xstat64(int ver, const char *path, struct stat64 *stat_buf)
{ {
int (*___xstat64)(int ver, const char *path, struct stat64 *stat_buf) = dlsym(RTLD_NEXT, "__xstat64"); int (*___xstat64)(int ver, const char *path, struct stat64 *stat_buf) = dlsym(RTLD_NEXT, "__xstat64");
@@ -572,6 +630,22 @@ FILE *fopen(const char *restrict pathname, const char *restrict mode)
pathname = newPathname; pathname = newPathname;
} }
// Fix for Outrun high scores
switch (gId)
{
case OUTRUN_2_SP_SDX:
case OUTRUN_2_SP_SDX_REVA:
case OUTRUN_2_SP_SDX_TEST:
case OUTRUN_2_SP_SDX_REVA_TEST:
case OUTRUN_2_SP_SDX_REVA_TEST2:
{
if ((newPathname = strstr(pathname, "/home/disk1")) != NULL)
{
pathname = newPathname + 12;
}
}
}
// This forces LGJ games and ID games to not use the pre-compiled shaders. // This forces LGJ games and ID games to not use the pre-compiled shaders.
if ((strstr(pathname, "asm_lbg") != NULL) || (strstr(pathname, "asm_gl") != NULL)) if ((strstr(pathname, "asm_lbg") != NULL) || (strstr(pathname, "asm_gl") != NULL))
{ {