PS2 HDD Softmod
Setting up PS2 Fat model with an internal harddrive setup to play stored disk images.
The general pathway here is to setup a custom boot process that allows for launching into OPL where we can then start to run games.
Examples given are from macOS, should translate to linux easy enough, most other guides are with Windows in mind.
WARNING the absolute filepaths/devices given are examples only. Make sure to use correct device paths/filesystem paths. Otherwise you will irrevocably corrupt your drives.
Pre Imaged HDD
This process initially images the harddrive as a bootable drive to launch wLaunchELF where we then launch the freemcboot installer off of a usb drive to reformat and install freemcboot back to the harddrive. There’s a period of time in this process (between formatting the hdd and installing freehdboot) where if the ps2 is restarted then we have to start again from the beginning as nothing will be bootable anymore.
Steps Overview
- image hdd with a prebuilt bootable image
- prepare usb drive
- install hdd into ps2 with network adapter and plug in usb drive
- turn on ps2 to boot into wLaunchELF (4.43a_KHn) from hdd
- launch freemcboot installer from usb drive
- format hdd
- install freehdboot
- upgrade OPL
- create
+OPL
partition - configure OPL
- turn off ps2 and remove hdd to direct copy from PC to HDD
- re-install hdd into ps2
FreeDVDBoot
Steps Overview
Instead of starting by imaging the harddrive with a bootstrap image, this path uses a bootable dvd to launch wLaunchELF. Once booted into wLauchELF the process is the same. Requires an extra piece, the bootable dvd, but once in hand makes for a slightly easier process of setup
- burn freedvdboot dvd
- prepare usb drive
- install hdd into ps2 with network adapter and plug in usb drive
- turn on ps2 to boot wLaunchELF (..) on dvd
- launch freemcboot installer from usb drive
- format hdd
- install freehdboot
- upgrade OPL
- create
+OPL
partition - configure OPL
- turn off ps2 and remove hdd to direct copy from PC to HDD
- re-install hdd into ps2
Prepare USB Flash Drive
Use a fat32
formated USB flash drive
cd /Volumes/USBDrive
mkdir OPL
cd OPL
unzip ~/Downloads/OPL_v1.2.0.6-1996.zip
cd /Volumes/USBDrive
7z x ~/Downloads/FMCB-1966.7z
made mistake here: when uzing 7z
cli the x
option not e
. x
will preserve folder locations of files where e
will not. why e
exists at all and is first on the help menu is beyond me.
Create HDD Image
Download _mbr.raw
Image HDD
sudo dd if=_mbr.raw of=/dev/disk2
Burn FreeDVDBoot
Download FreeDVDBoot Prebuilt ISO, right click and burn to disk
Install HDD into PS2
Seat the HDD into the Network adapter FIRST before sliding into the PS2. Simply putting the network adapter on after sliding the HDD in is not enough for it to make a connection. TODO: make a 3d printed sleeve/spacer so the hdd doesnt flop around and always makes a tight connection. In watching an LGR video on the PS2s network adapter/OEM hdd, it looks like it originally came with a metal sled which I dont have.
Launch FreeMCBoot Installer
Once loaded into some version of wLaunchELF
navigate to mass://FMCBinst-1966-[2025-01-01]
and then execute FMCBInstaller.elf
Format HDD
From inside the FreeMCBoot install navigate menu to format HDD and format the harddrive
Install FreeHDBoot
From inside the FreeMCBoot install navigate to “FreeHDBoot” to install FreeMCBoot to the harddrive.
Upgrade OPL
Reboot PS2 and from the FreeMCBoot menu run wLaunchELF
navigate to mass://OPL
mark (X
) OPNPS2LD.ELF
R1
menu and Copy
navigate to hdd0://APPS/OPL
mark (X
) OPNPS2LD.ELF
R1
menu and Paste
Create +OPL Partition
Run wLaunchELF
from FreeMCBoot
Navigate to MISC
Run HDDManager
Create new Partition called +OPL
Size should be 768MB
for hdds less than 720GB
and 1536MB
for anything greater than that (have to confirm these exact value thresholds). They make no sense for any reasonably sized HDD you’d probably use for this in the many 10s, 100s or 1000s of GB..
Copy Content From PC
To load data onto the PS2 formatted drive will use a tool called hdl-dump
Will have build it from source:
git clone [email protected]:ps2homebrew/hdl-dump.git
cd hdl-dump
make RELEASE=yes IIN_OPTICAL_MMAP=no
Once built can try it out after connecting the HDD
sudo ./hdl_dump map /dev/disk2
0GB: MMMMMMMM MMMMMMMM MM...... ........ ........ ........ ........ ........
8GB: ........ ........ ........ ........ ........ ........ ........ ........
16GB: ........ ........ ........ ........ ........ ........ ........ ........
24GB: ........ ........ ........ ........ ........ ........ ........ ........
32GB: ........ ........ ........ ........ ........ ........ ........ ........
40GB: ........ ........ ........ ........ ........ ........ ........ ........
48GB: ........ ........ ........ ........ ........ ........ ........ ........
56GB: ........ ........ ........ ........ ........ ........ ........ ........
64GB: ........ ........ ........ ........ ........ ........ ........ ........
72GB: ........ ........ ....
Total slice size: 76293MB, used: 2304MB, available: 73984MB
Loading in a game backup.
sudo ./hdl_dump inject_dvd /dev/disk2 "DDR Extreme" Dance\ Dance\ Revolution\ Extreme\ \(USA\).iso
sudo ./hdl_dump map /dev/disk2
0GB: MMMMMMMM MMMMMMMM MMMMssss ssss.... ........ ........ ........ ........
8GB: ........ ........ ........ ........ ........ ........ ........ ........
16GB: ........ ........ ........ ........ ........ ........ ........ ........
24GB: ........ ........ ........ ........ ........ ........ ........ ........
32GB: ........ ........ ........ ........ ........ ........ ........ ........
40GB: ........ ........ ........ ........ ........ ........ ........ ........
48GB: ........ ........ ........ ........ ........ ........ ........ ........
56GB: ........ ........ ........ ........ ........ ........ ........ ........
64GB: ........ ........ ........ ........ ........ ........ ........ ........
72GB: ........ ........ ....
Total slice size: 76293MB, used: 3584MB, available: 72704MB
Configure OPL
On a fresh install of OPL it will need to be configured to read games from the harddrive.
Settings -> BDM Start Mode -> Auto Settings -> HDD Device Start Mode -> Auto Settings -> Write Operations -> On
Exit settings with “Ok” bottom left
Save Changes
For some reason my setup will only correctly save USB.
Expect to see “Settings Saved to pfs0:”
https://www.reddit.com/r/ps2/comments/1hock6g/the_opl_and_other_settings_doesnt_save_on_my/
Even when I do, saved changes dont seem to be persisting…
Notes
wLaunch isr_hdd crashes when trying to copy a file from usb to clipboard
OPL wont launch with DDR mat plugged into player 1
References
- https://www.youtube.com/watch?v=T55dWmn4-k4
- https://github.com/israpps/hdl-dump
- https://github.com/CTurt/FreeDVDBoot#phat-consoles