PS2:Open PS2 Loader (OPL)

From ConsoleMods Wiki
Revision as of 16:38, 29 October 2023 by Derf (talk | contribs)
Jump to navigation Jump to search

A homebrew game loader that loads PS2 games from digital devices. It works by loading special software to both the Emotion Engine (EE) and the I/O CPU, which interfere in the game normal behavior. The IOPCORE, which runs in the I/O(PS1) CPU is in charge of replacing the CDVDMAN module amongst others. Its main purpose is the CDVDMAN module replacement, since this one is in charge of disc tray I/O. The replacement module is coded to load of a digital device (USB, network, HDD, MX4SIO, iLink). For all intents and purposes, the game believes it is loaded from the disc drive.

The EE program (known as EECORE) is in charge of hooking up several syscalls, and interfering in certain operations that would remove the IOPCORE (such as rebooting the I/O CPU, or uploading an IOPRP image to the I/O CPU).

Compatibility Issues

Every game is different. The PS2 library has more than 4,000 games, all of which are coded with different versions of the Sony SDK, on different years, by different companies. To worsen things, the IOP core has to maintain the smallest footprint possible due to the limitation of 2MB of RAM. The only PS2 models with extra RAM are the development tools and the PSX DESR, so the RAM issue will be a problem for 99% of the PS2 models around the world.

RAM consumption is also tied to the device that is hosting the game image. The most demanding devices are SMB network and USB. And the ones which consume the least of IOP RAM are MX4SIO and internal HDD.

Later slims (SCPH-75xxx+) had slightly worse compatibility. Fortunately, on 2023 OPL got support to operate the XPARAM module, which is in charge of changing the compatibility configurations of the DECKARD emulator. Ensuring compatibility with the ~286 games listed on the PS2TV internal compatibility list (the newest one), no matter which slim version and region you're using.