PS2 OPL (Open PS2 Loader) version 1.0 Released !!!

It is here! Open PS2 Loader ("OPL") 1.0.0!
After more than a decade (November 2008) of continuous development and a bit more than 5 years since the last official stable release-build (0.9.3 in December 2015), OPL 1.0.0 has been officially released!

The changelog since OPL 0.9.3 (~ rev 850) to the last release-build OPL 1.0.0 (rev 1589) are enormous!

image0-2.jpg


  • image0.jpg


    Open PS2 Loader (OPL) is a 100% Open source game and application loader for the PS2 and PS3 units. It supports three categories of devices : USB mass storage devices, SMB shares and the PlayStation 2 HDD unit. USB devices and SMB shares support USBExtreme and *.ISO formats while PS2 HDD supports HDLoader format. It's now the most compatible homebrew loader.​

    OPL is also developed continuously - anyone can contribute improvements to the project due to its open source nature.​

    You can visit the Open PS2 Loader forum at:

    You can report compatibility game problems at:

    For updated compatibility list, you can visit OPL-CL site at:
  • CORE:
    * Cache games list, allows the scanning of devices for games to be speed up, by caching the
    existence of games in a file, (HDD/SMB/USB). In the case of the HDD the cache is always used,
    unless the user manually refreshes the list or renames/deletes a game.
    * APPS new system, now can be stored within their own folder, within the APPS folders on the game
    devices. Each app should have its own title.cfg file. The old apps system is still supported.
    (Example: on a USB disk: APPS/LaunchELF/BOOT.ELF, title.cfg).
    * Merged GSM-CHEAT-VMC-Childproof. These functions are integrated, they are no longer compile separately.
    * PADEMU, new function, added support for DualShock 3/4 (USB & Bluetooth).
    * Lang support from all devices (USB, HDD & SMB), new folder "LNG" created for storing all the language files in each device.
    * Changed how devices are selected for loading/storing config files. When loading: 1. Check memory cards.
    2. If config could be loaded, try the device that OPL was booted from (supported devices only).
    3. If config could not be loaded, try all supported devices. 4. Default to memory card, if no config
    file could be loaded.
    * Updated with newlib v1.14.0.
    * GSM, numerous improvements, changes and fixes.
    * IGR, numerous fixes and updates.
    * SMB updates, numerous patches and changes in SMSTCPIP.
    * IGS new function, support for take in game screenshots, (non functional).
    * Skip videos improved, now not only skips PSS videos, also .BIK and sceMpegIsEnd based ones.
    * PS2 Logo, shows the PS2 logo when launching a game, it will be properly displayed only
    if both disc and console region match. Consumes a few extra IOP RAM bytes.
    * Removed Mode 7, (High Module Storage).
    * Updated HDD and PFS drivers.
    * CDVDFSV: various fixes.
    * USB, improved USB devices detection. Also increased priority of USBD in-game to 2 & 3.
    * Toolchain, fixes for the new toolchain.
    * Settings for display X and Y offset.
    * Textures: Add bmp support (from gsKit).
    * Power button can now be pressed to shut down the PS2 within OPL's GUI, when the network adaptor is in use.
    * Improved I/O performance for USB transfers by lifting restrictions on transfer length and
    allowing the USB callback to continue transfers.
    * (SMAP-ingame) ported workaround for MAL Rx FIFO becoming unresponsive, reduced DMA block size to
    64 for better performance, adjusted code to make less loads from the hardware and adjusted
    code for readability.
    * Fixed partition creation of +OPL: added PFS filesystem setting, changed open flags to
    WRONLY and removed unused mode parameter.
    * Fixed game size computation for HDLoader-format games.
    * Changes to CDVDMAN callback should be binding immediately.
    * Changed EE core starting free memory range from 0x00088000 to 0x00084000, following that Sony
    treats the range after 0x00084000 (from 0x00082000) as the new start point for free memory,
    which is the address used by the HDD browser, which has the alarm patch. This will give us
    more memory. But beware that this is not a well-trodden path.
    * Fixed computation of offslsn, which was not correctly updated when reading across 2 parts.
    A lot of fixes for ingame-SMSTCPIP, fixed event flag creation (when debug is on) in the ingame-ATAD.
    * Updated to support LWIP v2.0, change DNS server only for static mode & use all-zero addresses as
    the default (when DHCP is enabled).
    * Added code to shut down USB devices prior to power-off. Added more standard code for shutting
    down the HDD unit prior to power off.
    * HDPro, fixed HDPro being unable to communicate with the HDPro device.
    * Module update: refactored custom IOP module code to allow OPL to use the PS2SDK's DEV9,
    ATAD, HDPro ATAD and USBHDFSD modules directly. Updated in-game DEV9, SMAP, ATAD and HDPro ATAD.
    * Added workaround for bad GameStar adaptor to in-game ATAD code.
    * PS2LINK: final warning fixed, now ps2link module synced with https://github.com/ps2dev/ps2link.
    * Fixed framerate increase whenever the UI is delayed.
    * HDLDump server, fixed crash that may occur if the game settings network update function is used
    and the HDLDump server is started, and fixed a freeze when the HDLDump server is started and a
    game is booted from either HDD or USB device.
    * Fix for HDD size calculation, new poweroff processing mechanism, fixed PBUF allocation for Ethernet
    ARP request, new option for SMSTCPIP to save more RAM.
    * Fix for renaming on USB disks.
    * Fixed MC icon.
    * Fixes for PS3 BC (Backwards Compatible) (SMB).
    * Fix Per-Game Cheat Engine, all devices.
    * Fix font missing when selecting different language.​

    GUI:
    * New default theme & logo by Berion.
    * New game menu/global game settings.
    Added global settings for the settings of a game (conf_game.cfg).
    This allows the user to choose between loading per game, or global settings in a game
    for each of its functions.
    The global configuration is the default and supports GSM, PS2RD and PADEMU.
    If the per game configuration is chosen, it will have priority over the global one.
    * Moved the games settings inside a submenu - "Game Menu".
    * Moved the functions of delete and rename inside the new Game Menu.
    * Eliminated the information page from general options and mapped it to the square button.
    * Added the information page to default theme.
    * Hi-Resolution video modes.
    * Added video mode confirmation when user changes video mode.
    * Added SFX sounds for the intro and menus.
    * Add new start and select buttons, optimize texture filesize.
    * New fade transition (replaces slide).
    * Fix font, alpha and colours.
    * 4/8 bit png support.
    * Notifications.
    * Updated about page.
    * Updated font to POEVeticaNew.
    * Font fixed scaling for video modes with non square pixels, and for auto video mode.
    * If switching from custom language back to Internal English, reload default internal font.
    * Correctly render interlaced frame mode.
    * Improve alpha blending in 16bit (dithering) mode.
    * Scale button icons.
    * Fix vertical font alignment.
    * Added button in display settings to reset theme to default compiled in colours.
    * Allow the user to auto or manually refresh the apps list. Changed buttons to only
    refresh the active item (instead of all items) when auto refresh is enabled.
    Themes:
    * Increased maximum texture size to 1024x1024.
    * Translate information page attribute text keys.
    * Allow internal theme to use overlays and multiple default textures.
    * (ItemsList) Allow itemsList to be centered.
    * (Hint strings) The information texts have the unified positions in x and y, themes now they
    have the option of "aligned=1" to align the screen texts to the center of the main and info pages.
    * (AttributeText) and (AttributeImage) can be used now in the main menu of themes.
    * Added MiB suffix to #Size AttributeText.
    * (Fixed old bug) Fixed a bug in custom themes that uses the information page, where if the
    elements of the main page go in two digits, e.g. "main10:", the elements of the information
    page that go in one digit, e.g. "info0:", are not loaded.
    * (Fixed bug) Fixed a bug with fonts where they were not loaded with custom themes.
    * (Fix) Fixed loading theme from "manual" device.
    * VMC, Fix for VMC name not displayed when first entering menu if one is already configured.
    * Various bug fixes.
    GAME FIXES & COMPATIBILITY IMPROVEMENTS:
    * Fix for Kingdom Hearts II, fixed transitions in the Gummi missions, from the overworld map to the gummi
    menu, and from the gummi stage back to the gummi menu. Tested using SMB mode and the (SLUS-21005) version.
    * Fix for SOS: The Final Escape/Disaster Report/Zettai Zetsumei Toshi. This also includes new IOP patch functions.
    * Fix for Project Zero/Fatal Frame.
    * Fix for Samurai Warriors 2.
    * Fix for Warriors Orochi series.
    * Fix for GSM on games God of War (SCUS-97399) & Sega Genesis Collection (SLUS-21542).
    * Added patch for Virtua Quest (SLUS-20977) (SLPM-65632). Module storage location can now be
    specified (hardcoded) for each game.
    * Added patch for .hack (all PAL releases).
    * Added patch for Ultimate Pro Pinball (SLES-53508) [HDD & USB]. For HDD the game needs Mode 2, for USB
    not needs the Mode 2, and for SMB the game not works.
    * Added patch for Ferrari Challenge: Trofeo Pirelli (SLES-55294) and (SLUS-21780). The game freezes after
    the memory card check screen, if IGR was used at least once. This is caused by the game having the main
    thread ID hardcoded for a call to WakeupThread().
    * Added patch for Shadow Man: 2econd Coming (SLUS-20413, SLES-50446 & SLES-50608) [HDD & SMB].
    The game attempts to read 17 sectors into buffers meant for a maximum of 16. This happens because it increments
    the number of sectors to read by 1, when its unpacking function deals with a number of bytes that is not a
    multiple of 2048.
    * Added workaround for Ridge Racer V (SLUS-20002 & SLES-50000), [USB]. The game seems to have
    problems when the media takes too long to completely read data. The data processed by the game appears
    to get offset, causing some loop to never end, which ends with the scratchpad overflowing.
    * Added patch for SRS: Street Racing Syndicate (SLUS-20582 & SLES-53045) [HDD,USB,SMB].
    * Added The Fast and the Furious (SLUS-21449 & SLES-54483) to the patch list for the Eutechnyx Ltd patch.
    * Added patch for Harvest Moon: A Wonderful Life, (SLPS-25421) (SLPS-25431) (SLPS-73222) (SLUS-21171) (SLES-53480).
    * Updated Ratchet & Clank 3: Up Your Arsenal patch as HDD mode no longer has cdvdman labelled as "dev9".
    * Added patch for Shaun Palmer's Pro Snowboarder (SLUS-20199 & SLES-50400). Should work for (SLES-50401)
    & (SLES-50402) as well, perhaps only the japanese release is at risk of not being compatible due to the
    time between releases.
    * Fix for Twisted Metal: Black Online (SCUS-97196 & SCES-51480) [USB & SMB].
    * Fix for State of Emergency (SLUS-20214) [HDD]. Previously the NTSC-U version needed MDMA 2 to work,
    now it doesn't need it.
    * Fix for Metal Gear Solid 3: Subsistence (SLUS-21243).
    * Fix for Tom Clancy's Splinter Cell: Double Agent (SLES-53826).
    * Fix for Tom Clancy's Splinter Cell (SLES-51466) [USB]. No more crashes after the first training mission.
    * Fix for Baldur's Gate: Dark Alliance 2 (SLES-52188) [USB]. Fix in the level "Firewind Manor I" where the game
    refuse to load cutscene, resulting a bug.
    * Fix for God of War II (SCES-54206 & SCUS-97481) [USBExtreme format & SMB].
    * Fix for Legacy of Kain: Soul Reaver 2 (SLES-50196) [USBExtreme format]. Fixed crash happening few second before
    intro movie ends, and fixed a second crash was in air forge, when you go for the green crystal.​
  • There are some more important thing to know.
    1. There is a build-bot available, where you can download the newest official OPL-Beta-builds! --> https://github.com/ps2homebrew/Open-PS2-Loader/releases
    2. Switch to using "CFG" folder for every build, instead of "CFG-DEV".
    3. The versioning-scheme is going to be more strictly used from now on, hence you will probably not wait as long as before, to see a new subversion-build (i.e. 1.1.0, etc.) or even patch-level-build (i.e. 1.0.1, etc.)!

    Example how the version(ing)-scheme works/is structured.
    Code:
    VERSION = 0
    SUBVERSION = 9
    PATCHLEVEL = 3+
    ...or in words...
    Code:
    MAJOR version when you make incompatible API changes,
    MINOR version when you add functionality in a backwards compatible manner, and
    PATCH version when you make backwards compatible bug fixes.

    Major and minor versions, will have "release candidates" before their release as a stable build!
  • GUI:
    • Getting ISO\ul game size has been temporary turn off to reduce boot time
    • When a PS1 MC will be inserted into 1st port, OPL still will update game history, causing corrupted data to appear on it (#284)
    • OPL will freeze e.g. on HDD Games page when a power off button will be tap instead of turning off the console.
    • When OPL is doing something in background and I want to reboot it or shut it down it will freeze (#312)

    In game:
    • Few (at least 5) in-game reboots will crash\freeze game (#231)
    • IGS (#336)

    Still problematic games:
    • Test Drive
    • LEGO Racers 2
    • Splashdown

  • https://github.com/ps2homebrew/Open-PS2-Loader/releases/tag/v1.0.0
  • Main Project developers
    by Ifcaro, volca, jimmikaelkael, polo35, izdubar, hominem.te.esse, SP193

    Other developers

    by BatRastard, crazyc, dlanor, doctorxyz, reprep, belek666, Maximus32, misfire, Krah, Tupakaveli, uyjulian

    UI design

    by Berion

    Quality Assurance
    by RandQalan, yoshi314, EP, LocalH, lee4, El_Patas, ShaolinAssassin, algol, gledson999, jolek, zero35

    SMSUTILS, SMSMAP & SMSTCPIP modules

    by Eugene Plotnikov

    DEV9, ATAD modules and derived code used in cdvdman
    by Marcus R. Brown

    USB, Network and PS2HDD modules
    by ps2dev's taken from PS2SDK

    OPL-CL project/network update support
    by icyson55

    SMB code in Open PS2 Loader includes DES algorithm developed
    by Eric Young ([email protected])

    CI/CD Implementation using Dockers and GiHubActions
    by @fjtrujy

 
Last edited:
Feels surreal tbh, thought this day would never come. But as the say goes, "you are gonna make hdl cry like an anime fan on prom night" no wait that wasn't it... "it's better than nothing" no that wasn't it either... "OPL wasn't built in 2 days"... yeah that was it.

Anyway, thanks to any and everyone involved, it's been a wild ride
 
Thanks for the great effort but someone have a french language file for this new version ?
Have you tried the github repo's file?
The French language file was updated about 7 months ago, I would assume that is what you are looking for.

At a glance,
1. the language files are in the "lng" folder.
2. the font files (if needed) are in the "thirdparty" folder.
3. and for those interested in such things, at the root of the repo, there is a shell file to automate the zipping of necessary files into a language pack archive.
 
Does difference between:
"OPNPS2LD-v1.0.0.7z|OPNPS2LD/OPNPS2LD-v1.0.0.ELF" and
"OPNPS2LD-VARIANTS-v1.0.0.7z|OPNPS2LD-VARIANTS/OPNPS2LD-v1.0.0----.ELF"
is only that first is packed and second does not?

And another thing which comes to my mind. Could You guys create tiny loader which would launching "hdd0:/+OPL/OPL.ELF" and loading itself on 0x10000? Would be handy for peoples which want start OPL from "hdd0:/__mbr" (because the rest partitions will be not needed any more if someone want straight boot to OPL). Just an idea. ^^

Oh, and in addition, could OPL seeking resources not only on "hdd0:/+OPL/" but also on "hdd0:/PP.OPL/"? This change will be nice for peoples who want run current OPL from HDD OSD. And the same change for loader from above request. ^^


@Forbidden Make junction points/soft links to PS2ISO on CD and DVD dirs.
 
Last edited:
Have you tried the github repo's file?
The French language file was updated about 7 months ago, I would assume that is what you are looking for.

At a glance,
1. the language files are in the "lng" folder.
2. the font files (if needed) are in the "thirdparty" folder.
3. and for those interested in such things, at the root of the repo, there is a shell file to automate the zipping of necessary files into a language pack archive.
Ah ok, it's the same file i used. Thanks a lot :)
 
And another thing which comes to my mind. Could You guys create tiny loader which would launching "hdd0:/+OPL/OPL.ELF" and loading itself on 0x10000? Would be handy for peoples which want start OPL from "hdd0:/__mbr" (because the rest partitions will be not needed any more if someone want straight boot to OPL). Just an idea. ^^

Oh, and in addition, could OPL seeking resources not only on "hdd0:/+OPL/" but also on "hdd0:/PP.OPL/"? This change will be nice for peoples who want run current OPL from HDD OSD. And the same change for loader from above request. ^^

This would make OPL more user friendly to those with the updated/hacked HDD OSD ... :)

They've been feeling neglected ever since mini-opl fell by the wayside ... :(
 
@Bat_Rastard Back in days, OPL can be fit in ~890KiB limit. Today probably not, so that's why such loader would be handy (and once created, never again needs update in opposite to "mini-OPL") for both groups ("PS2 autoboot to OPL master race" ;p and "HDD OSD lovers").
 
Thanks to all the developers involved, I have been using the tenth anniversary variant that has a section for ps1 games, I guess with this version I will have to do it differently to view and play the ps1 games.
 
Use the APPS-page for your links to the PS1-games.
Please create a thread about it, if you need further help.
 
@Berion
I'm on Linux and my drive is exFAT format, any way it could be added to the app itself to look at folder PS2ISO for ISO files as well? Thanks again sir.
 
@Forbidden Outside Windows You are unable to use hardlinks and junction points (and creation possible only on Windows). Maybe there is possible to map somehow one dir content and show it on other, I don't know unfortunately.
 
Something in the ether was calling me back to PS2 modding. Developments like this are exciting! Great to see!
 

Similar threads

Back
Top