Originally Posted by dlanor
I think a lot of 'disturbing things' can be worked around.
Atleast in this case, I think it is the way which implies the disturbance and it can be worked around with another way.
It would require a total analysis of every single game program to determine a safe point early in the program start sequence where a restart without crashing would be possible, and also to find the precise method for doing it safely. Next take that amount of work (probably at least several days, possibly weeks, per game) and multiply that by a few thousand game releases, and start figuring when a decently complete release could be made.
Say one week per game, multiplied by a modest thousand games (there are many more), and that job might be completed in just a little over nineteen years from now...
Best regards: dlanor
Just one idea which springs up in my mind is, if OPL would support to be started by args (like it is the only way to sucessfully start a game in PS2PSXe with "-cdimage"-arg).
So, when the game calls for a soft-reset to restart the game it reloads OPL from the same location, where it last was started from and starts it with an arg which "says to" OPL "start game xyz from a, b, or c".
That is only one way,...
I think it is possible to restart a game from within a game in an easier manner, then the 'reverse every game-ELF'-way for example also with a complete reset to the state, where it (OPL) began the CDVD-&VMC-Emulation (at the debug-colors), but I'm not sure how well that would work and not sure if it even would work that way...
But atleast the arg-way should work thought.
Implementing arg-support would also bring some other flexibility, for example you could define by args, to use a different VMC, Compatibility-Mode and so on, without changing the games default options (if implemented).
The arg-implementation in itself would help a few projects to extend their flexibility, while it shouldn't use up too much space.
For example, the three ESR-ELF could all be combined into one.
If it is started without args, it can act like the 'dvd direct'-version.
If for example the command "-ELF=mc0:BOOT/BOOT.ELF" is send, it can start the ELF with drivers and act like the mc-version and so on.
I ever liked the possibilities on a PC, for example if you start a few games with -debug, or similar.
Edit: Anyway, just thought about the first spring-up-idea. That would need an ELF-Loader,... Aaaah,... How can't I think about that? ...or is it there (beside the LoadExecPS2-Thingy from kernel...)?
But maybe the second way, of resetting it in a way to the beginning of the driver-hooking and that stuff.
Still,... To me personally, an option to jump back to OPL would be a lot more interesting to me.
Why? Simply because I don't like how it de- and re-initialize it the Hardware over and over again, shutting down the HD and turning it back on.
That was one of the features I liked in FMCB the most.
Skipping the HD-Initialisation in OSDSYS, to stop it wearing out faster.
The same in a reverse way, without shutting down the HD and restarting the HD once in OPL, but simply by jumping to the last location, where OPL was started from and start it again...
But wait. That would mean, it (OPL) can start ELFs out of the game (with IGR), so maybe the arg-idea is working too?!
I don't remember, if it reverts correctly to an ELF... It's some time gone, but I normaly jump back to browser.
Last edited by TnA; 08-17-2010 at 03:31 PM.
PS2 V7/DMS3 V2 (FW:2.4b7); Seagate Baracuda 200GB
PS2 V7/CC1.0 (FW:34 hacked v2 BM:2.1.6); Maxtor DiamondMAX9 PLUS 160GB
PS2 SCPH-30004R; NoMod+NoLaser
3xSony MC 8MB
MAX/Datel 16MB with Boot-CD
Custom FMCB 1.8b+ Beta-Build, my AIO 0.5, Sony&xRhino-Linux