Back in the day, I did my first mcBoot card with the game Extermination using a DVD-RW.I normally use Time Splitters for Swap, to not waste DVDs
Back in the day, I did my first mcBoot card with the game Extermination using a DVD-RW.I normally use Time Splitters for Swap, to not waste DVDs
Do you know, why the thread-IDs change in the first place? That might be interesting.
FMCB/FHDB MIGHT have an issue which is related to one of those or triggered via one (or a combination) of those!
@sp193: I have some questions regarding the Ferrari Challenge tests you did...
- Is a second IGR and 3rd game-boot possible (not sure if it freezes quite in the beginning) and are the Thread-IDs the same like after the first IGR and the 2nd game-boot?
- If NOT, does it ever show the same IDs for the 2 tests? If yes, I suppose this 'Thread-ID-change'-issue possibly is not caused by OPL.
- If it freezes too early, I'd be interested if you could try to IGR a few times out of other games and then try Ferrari Challenge again. Are the Thread-IDs like they were in your earlier test before or after the IGR or again different?
There's no way (officially) to switch to another game without going through the HW Reset. Even with games with official HDD support (like jap versions of FFX), there's no way to exit a game without resetting the console.
THAT is absolutely NOT true!
Take a look at here:
I mentioned the double-time-swap before and thought you'd do it that way...![]()

It doesn't need to be directly IGR-related or has to leave some code back behind, like I already said... IGR could merely be a trigger! Please don't 'jump to conclusions' too fast... I had seen that 'somewhere' before (quite recently). ^^
This doesn't prove YET, that IGR's code itself is at fault (even tho' it might seem likely)! But obviously I made a thread to explore the VARIOUS IGR-related issues (regardless if IGR is directly at fault or just a trigger), so I think that's quite obvious that I think the IGR-Tests might help us with various issues...![]()
No... Just no... That does NOT prove (or 'letting us know') that any of the additional code we introduce is left behind!
That solely proves that IGR could trigger the issue and in FC's case, it has a different Thread-IDs, which causes the issues (or more specifically the hard-coded Thread-IDs the developer wants to call/'speek to' from other threads are not working, because the IDs changed after an IGR...).
That does still not prove that IGR itself is directly at fault, or that it leaves some code in RAM, but the 'state' of the console certainly changes...![]()
I wonder if the same happens, if someone starts wLE from FMCB, accesses the HDD and then starts OPL and then the game!
Then the culprit/error is most likely to be searched in OPL itself and how it handles the current 'state' the PS2 is running in.
@sp193, i tested the PAL version with the latest r1236 and now the game after anFix for Ferrari Challenge: Trofeo Pirelli (SLES-55294)
The game has no direct issues with OPL itself, but will hang after the memory card check screen, only if IGR was used before.
The main thread gets stuck in Sleep state, due to the developers hardcoding the thread ID of the main thread.
Thread list, once the game hangs:
Code:dsedb R> dt tid prio pc sp status cause sid wakeup count function 0 128 00081fc8 00000000 Run 0 7211 10 5 004e1208 07ffebc0 Wait Sleep 0 4163 15 0 004e1328 00671160 Wait Sema 2 0 1 16 2 004e1208 00646e40 Wait Sleep 0 6365 17 2 004e1328 0064f370 Wait Sema 12 0 2 18 0 004e1208 0066e950 Wait Sleep 0 1 19 127 0008e138 000925c0 Wait Sleep 0 1
Thread 10 is the main thread, while thread 19 is the IGR thread.
Compared to how things were when the game was run the first time:
Code:dsedb R> dt tid prio pc sp status cause sid wakeup count function 0 128 00081fc8 00000000 Ready 0 1189 1 5 004e1854 07ffeaf0 Run 0 1200 6 0 004e1328 00671160 Wait Sema 2 0 1 7 2 004e1208 00646e40 Wait Sleep 0 169 8 2 004e1328 0064f370 Wait Sema 12 0 1 9 0 004e1208 0066e950 Wait Sleep 0 1 10 127 0008e138 000925c0 Wait Sleep 0 1
Here, thread 1 is the main thread and thread 10 is the IGR thread. Whenever we invoke IGR, the IGR thread becomes the main thread.
All threads are equal, but the developer hardcoded the thread ID of the main thread for the argument to WakeupThread():
Code:dsedb R> di 0x12fcc4 0x0012fcc4: 0x0c138484 jal WakeupThread 0x0012fcc8| 0x24040001 li $a0,0x01
Since the main thread is no longer thread ID 1 during the subsequent runs, the main thread cannot be woken up.

I have found that our IGR implementation does not wipe user memory before booting the next ELF, which occasionally resulted in faulty behaviour.
I spent so long, wondering why it seemed like very large portions of the OPL GUI's memory was getting corrupted after IGR, seemingly getting overwritten by other regions of itself. It seemed to be caused by (leftover) old code from the game getting called by OPL's code/old data causing the new code to misbehave. @_@
The pull request hasn't been merged yet, so I added the new fixes there. Here is something for you to play with, while waiting.
I checked "Shaun Palmer's Pro Snowboarder", unfortunately the situation is unchanged. I explain for who didn't know this game:
- no need of any MODEs
- at first boot it just works with any DMA, but after IGR the game will have problems at higher DMA.
i.e. I can boot the game in UDMA 4 at first, all is perfect, but after IGR the game will freeze just before appearing the starting logos (after the MC check) and there are high chances to freeze with UDMA 3 too.
With UDMA 2 it never freeze but the intro FMV have some stutter (both video and audio), the lower the DMA the less will stutter. Indeed I had the game set with MDMA0, so the stutter doesn't happen even if booting the game after an IGR.
I repeat, at every first start the game is perfect (intro FMV too) with every DMA (UDMA 4 too. I've set it so now, 'cause it pratically eliminate the loading time).
So it seems to confirm that after a IGR something still remains in memory causing problems to some games.
Then i checked the NTSC-U version (SLUS-21780) which i not tested never before, and i got
the surprise that the IGR not works with this version, (tried with the previous r1229 and
the r1236), when i press the IGR i obtain a "without signal " message on my TV.
Btw "after IGR problems" remain for the games.
Ferrari Challenge (I have the USA version) still freeze at the second loading time rebooting it after a IGR it's been performed.
Tried the build from your link. It seems that something changed for the better, this is what I done:
- I booted OPL from your link, started Ace Combat, then done a IGR
- the IGR path was set to OPNPS2LD-GAMELIST I had into the MC
- OPNPS2LD-GAMELIST succeeded to load the list (correctly reading games.bin file without going into the loading loop).
Situation is unchanged for Shawn Palmer's Pro snowborder too:
dsedb S> dt
tid prio pc sp status cause sid wakeup count function
0 128 00081fd0 00000000 Ready 0 4027
7 1 00138f24 01fff730 Run 0 1217 <_start>
16 0 0010caa8 002e8ff0 Wait Sema 2 0 1 <topThread>
17 127 0008e1a8 00092640 Wait Sleep 0 1
18 7 0010c918 002f4700 Ready 0 79 <defMain>
19 7 001094b4 01206170 Ready 0 163 <videoDecMain>
I looked at the NTSC-U/C version, SLUS-20199. The game's MPEG video playback might have been designed after the Sony mpegstr sample, which uses a "default thread" for switching between threads.
However, instead of changing the main thread's priority, the developers tried to use the main thread's priority for the other threads, but incorrectly used the main thread's ID instead.
During a clean boot of the PS2, this works okay because the main thread's ID is equal to the priority, of priority 1.
So after the thread IDs change (due to running something before the game), the mistake causes this to happen:
Code:dsedb S> dt tid prio pc sp status cause sid wakeup count function 0 128 00081fd0 00000000 Ready 0 4027 7 1 00138f24 01fff730 Run 0 1217 <_start> 16 0 0010caa8 002e8ff0 Wait Sema 2 0 1 <topThread> 17 127 0008e1a8 00092640 Wait Sleep 0 1 18 7 0010c918 002f4700 Ready 0 79 <defMain> 19 7 001094b4 01206170 Ready 0 163 <videoDecMain>
The default (defMain) and video decoder main (videoDecMain) threads no longer share the same priority as the main thread (_start)! And so the main thread busy-loops over the other 2 threads, causing a hang.
Does anybody have the European and Japanese versions?
The PCSX2 page suggests that there were 3 PAL releases, but are the three of them similar? https://wiki.pcsx2.net/Shaun_Palmer's_Pro_Snowboarder
I just need the boot file (e.g. SLES_504.00). So if somebody has the files from these games, I can update the patch to support them.
I see, thank you for all the infos and efforts
Anyway, the different behavior depending on the DMA speed is caused by the same issue??
Setting UDMA 2 (or below) the game won't freeze after all IGRs you want
(just the intro will stutter at higher DMA, but in MDMA 0 it wouldn's stutter at all).
I too have the USA version of this game.
Another game I'm testing is Air Combat the Unsung War. Like State of Emergency It's one of those games that have problems since the r730.
It seems to freeze at mission 6 and 9 (and maybe Others), I can't confirm yet (I completed just a mission). Everything works fine so far, aside one thing: the briefings background music is missing.
The r1236 which i used is the one of this stickied thread which points to resources and which have@El_Patas OPL r1236 you tried is the the one @sp193 linked HERE, right?? So we tested the same version.
Could you try another time with Ferrari Challenge TP (USA) if for you this behavior is stable?? I've IGResetted from this game thousands of times in the last years (for testing purposes) and it happened only one time to lost the video signal when IGResetting.
The PAL versions they are different by languages, and the boot file are differentDoes anybody have the European and Japanese versions?
The PCSX2 page suggests that there were 3 PAL releases, but are the three of them similar? https://wiki.pcsx2.net/Shaun_Palmer's_Pro_Snowboarder
I just need the boot file (e.g. SLES_504.00). So if somebody has the files from these games, I can update the patch to support them.
I hope @jolek can tell us the name of the ESR-Game, which didn't work with ESR if the PS2 wasn't coldbooted.
About the cold booting to OPL (that solved Half Life problem for @jolek) it seems a problem related to FHDB (indeed escluding it, the problem doesn't seems to occur). I use only FMCB and for me cold booting to OPL or not never make any difference.
It should be that same problem. The immediate issue when it hangs, is that the audio input ring buffer is full, but no playback can take place because the main thread is preventing the video decoding thread from running (it is not clear to me either, but perhaps it cannot continue playing audio because the video stream cannot be played).
So when it takes a while to read data, this glitch can be avoided. But in the first place, its thread-scheduling mechanism fails once the main thread's ID changes, due to the mistake that the developers made. If the game was played in the way it was designed (i.e. switch on PS2 and insert game disc), then it will always work correctly and the bug is not visible.
This might be due to thread starvation, which can happen if the game requests a lot of data.
Does accurate reads not help?
I'm looking for people who own the other releases because I need their boot executable files to adapt the patches to fit the other releases.
I see, thanks. The lack of background music might be some other issue. Have you tried using accurate reads with this?
this the boot file of Shaun Palmer's Pro Snowboarder
I tried making a OPL folder in my usb-hdd where the OPL_DB elf is, tried to copy my cfgs directly where OPL_DB is, but neither works, OPL_DB keep loading the cfg from my MC.
So, there's a way to make OPL_DB loading a cfg file from the usb-hdd or the priority will always be for the cfg into the MC??
cfg from MC has always priority so no, not possible using standart builds. If you really wants that, maybe you could try some hex edit. Unpack 1 of the ELF version, and make it load cfg from mc?:/OPX instead of mc?:/OPL (I highlysuggest you to replace letters instead of inserting letters in the folder's name).

Yes, but it slowdown the loading times even more than MDMA 0. So it's better to use the latter.
@sp193 is there any chance to extend Fixed video mode confirmation message:
https://github.com/ifcaro/Open-PS2-Loader/pull/166/commits/eb95021f739ad692523639cd4c5d812a2333a198.
I mean, on some TV's this message might not be fully shown, it takes some time for them to adjust.
Currently there is ~5 sec to make a decision.
What about 10-15 sec?