Skip to content

Commit 1ae30c1

Browse files
committed
ElfLdr: Early WIP support for tricky jampack demo
This will not be finished for v0.5 most likely, but it's something I guess. Game at least tries to boot. Hangs trying to load SIO2MAN.IRX though :( Probably the last major code before I freeze and only bugtest for v0.5 release.
1 parent b9fe362 commit 1ae30c1

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

src/elfldr/Patches/HostFS.cpp

+17-1
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,23 @@ namespace elfldr {
143143
break;
144144

145145
case util::GameVersion::SSXDVD_JAMPACK_DEMO:
146-
ELFLDR_VERIFY(false && "sorry, this doesnt work atm. please give me at least 5 minutes of research time");
146+
util::NopFill<84>(util::Ptr(0x001803ec));
147+
148+
util::ReplaceString(util::Ptr(0x00381db8), "");
149+
util::ReplaceString(util::Ptr(0x00381dc0), "host:");
150+
151+
util::ReplaceString(util::Ptr(0x00381b10), "host:data/modules/ioprp224.img");
152+
153+
util::WriteString(util::Ptr(0x00381bd0), "host:data/modules/sio2man.irx");
154+
155+
//util::WriteString(util::Ptr(0x00381bd0), "");
156+
util::WriteString(util::Ptr(0x00381c00), "host:data/modules/padman.irx");
157+
util::WriteString(util::Ptr(0x00381c90), "host:data/modules/libsd.irx");
158+
util::WriteString(util::Ptr(0x00381ca8), "host:data/modules/snddrv.irx");
159+
util::WriteString(util::Ptr(0x00381ca8), "host:data/modules/mcman.irx");
160+
util::WriteString(util::Ptr(0x00381d38), "host:data/modules/mcserv.irx");
161+
162+
//ELFLDR_VERIFY(false && "sorry, this doesnt work atm. please give me at least 5 minutes of research time");
147163
break;
148164
}
149165
}

src/elfldr/Patches/MemoryClear.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ namespace elfldr {
6969
break;
7070

7171
case util::GameVersion::SSXDVD_JAMPACK_DEMO:
72-
ELFLDR_VERIFY(false && "doesnt work for now, please bug me later.");
72+
//ELFLDR_VERIFY(false && "doesnt work for now, please bug me later.");
7373
break;
7474

7575
default:

src/utils/GameVersion.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ namespace elfldr::util {
3838
ELFLDR_ASSERT(false && "Invalid region!");
3939
}
4040
break;
41+
case GameVersion::SSXDVD_JAMPACK_DEMO:
42+
return "SSXDEMO.ELF";
4143
}
4244

4345
ELFLDR_UNREACHABLE();

0 commit comments

Comments
 (0)