Patches for OSDSYS and HDD OSD (Browser 2.0) based on Free McBoot 1.8.
- Copy
osdmenu.elf
tomc?:/BOOT/
or copy and pasteSYS_OSDMENU.psu
via wLaunchELF usingpsuPaste
Copy DKWDRV tomc?:/BOOT/DKWDRV.ELF
(optional) - Edit
mc?:/SYS-CONF/OSDMENU.CNF
as you see fit - Configure PS2BBL to launch
mc?:/BOOT/osdmenu.elf
or launch it manually from anywhere
-
Install HDD OSD 1.10U
Make sure HDD OSD binaries are installed intohdd0:__system/osd100/
andOSDSYS_A.XLF
is present.
SHA-256 hashes ofOSDSYS_A.XLF
known to work:acc905233f79678b9d7c1de99b0aee2409136197d13e7d78bf8978cd85b736ae
— original binary from the official HDD Utility Disc Version 1.1065360a6c210b36def924770f23d5565382b5fa4519ef0bb8ddf5c556531eec14
— cracked HDD OSD with 48-bit LBA support from the Sony Utility Disc Compilation 4 disc
When using the unmodified binary on non-NTSC-U consoles, you will have to decrypt and re-encrypt the original binary with
kelftool
to change the MagicGate region to 0xff (region free). -
Copy
hosdmenu.elf
tohdd0:__system/osdmenu/
Copy DKWDRV tohdd0:__system/osdmenu/DKWDRV.ELF
(optional) -
Edit
hdd0:__sysconf/OSDMENU/OSDMENU.CNF
as you see fit -
Configure your bootloader to launch
hdd0:__system/osdmenu/hosdmenu.elf
or launch it manually from anywhere
You can also install HOSDMenu as__mbr
payload to get quicker boot times, see installer for details.
- All initialization code is removed in favor of using a separate bootloader to start the patcher (e.g. PS2BBL)
- USB support is dropped from the patcher, so only memory cards are checked for
OSDMENU.CNF
- No ESR support
- No support for launching ELFs by holding a gamepad button
- ELF paths are not checked by the patcher, so every named entry from FMCB config file is displayed in hacked OSDSYS menu
- A separate launcher is used to launch menu entries
- CD/DVD support was extended to support skipping PS2LOGO, mounting VMCs on MMCE devices, showing visual GameID for PixelFX devices and booting DKWDRV for PS1 discs
- "Unlimited" number of paths for each entry
- Support for 1080i and 480p (as line-doubled 240p) video modes
- Support for "protokernel" systems (SCPH-10000, SCPH-15000) ported from Free McBoot 1.9 by reverse-engineering
- Support for launching applications from the memory card browser
- Support for setting PS1 driver options on every boot
- Support for HDD OSD 1.10U
Due to memory limitations and the need to support more devices, the original FMCB launcher was split into two parts: patcher and launcher.
This is a slimmed-down and refactored version of OSDSYS patches from FMCB 1.8 for modern PS2SDK with some new patches sprinkled in. It patches the OSDSYS/HDD OSD binary and applies the following patches:
- Custom OSDSYS menu with up to 250 entries
- Infinite scrolling
- Custom button prompts and menu header
- Automatic disc launch bypass
- Force GS video mode to PAL, NTSC, 1080i or line-doubled 480p (with half the vertical resolution).
Due to how to OSDSYS renders everything, "true" 480p can't be implemented easily - HDD update check bypass
- Override PS1 and PS2 disc launch functions with custom code that starts the launcher
- Additional system information in version submenu (Video mode, ROM version, EE, GS and MechaCon revision)
- Set PS1 driver options to values from
OSDMENU.CNF
on every boot
OSDMenu:
- Launch SAS-compatible applications from the memory card browser if directory name is
BOOT
,<3-letter SAS prefix>_<appname>
or if file name ends with.ELF
or.elf
.
This patch swaps around the "Enter" and "Options" menus and substitutes file properties submenu with the launcher.
To launch an app, just press "Enter" after selecting the app icon.
To copy or delete the save file, just use the triangle button.
HOSDMenu:
-
Boot custom payload when the Cross button is pressed during the initialization (see here).
-
Launch SAS-compatible applications and ELF files from directories in the
hdd0:__common
partition or the memory card browser if directory name isBOOT
,<3-letter SAS prefix>_<appname>
or if file name ends with.ELF
or.elf
.
To launch an app, just press "Enter" after selecting the app icon. -
ATAD driver is replaced to bypass security checks on unmodified HDD OSD or to fix compatibility with drives larger than 1TB on cracked HDD OSD.
Note that HDD OSD will not see more than 1048448 MB. For larger drives, APA Jail is recommended.
You can also check out PSBBN Definitive English Patch for more automated APA Jail experience and easy-to-use HDD OSD+Broadband Navigator setup.
Patches not supported/limited on protokernel systems:
- Automatic disc launch bypass
- Button prompt customization
- PAL video mode
OSDMenu version of the patcher reads settings from mc?:/SYS-CONF/OSDMENU.CNF
and patches the rom0:OSDSYS
binary.
HOSDMenu version reads settings from hdd0:__sysconf/OSDMENU/OSDMENU.CNF
and patches the hdd0:__system/osd100/OSDSYS_A.XLF
See the list for supported OSDMENU.CNF
options here.
OSDMenu will run the embedded launcher and pass the menu index to it for every menu item and disc launch.
HOSDMenu supports running from __mbr
on your hard drive, making the boot process essentially seamless.
It can also run a custom payload from hdd0:__system
if path_custom_payload
is set and the Cross button is held during HOSDMenu initialization. The valid path formats for path_custom_payload
are:
hdd0:__system/<path to payload on __system>
hdd0:__system:pfs:<path to payload on __system>
If boot_custom_payload
is enabled, the custom payload will be launched by default.
To load HDD OSD with this option enabled, simply hold the Cross button.
To improve reliability and avoid potential boot loops when neither HDD OSD nor the custom payload exist, HOSDMenu will attempt to run RECOVERY.ELF
from USB.
A fully-featured main ELF launcher that handles launching ELFs and CD/DVD discs.
Supports passing arbitrary arguments to an ELF and can also be used standalone.
Supported paths are:
mmce?:
— MMCE devices. Can bemmce0
,mmce1
ormmce?
mc?:
— Memory Cards. Can bemc0
,mc1
ormc?
mass:
andusb:
— USB devices (supported via BDM)ata:
— internal exFAT-formatted HDD (supported via BDM)mx4sio:
— MX4SIO (supported via BDM)ilink:
— i.Link mass storage (supported via BDM)udpbd:
— UDPBD (supported via BDM)hdd0:
— internal APA-formatted HDDcdrom
— CD/DVD discsfmcb
— special path for the patcher
Device support can be enabled and disabled by changing build-time configuration options (see Makefile)
Reads PS2 IP address from mc?:/SYS-CONF/IPCONFIG.DAT
Waits for the disc to be detected and launches it. Supports the following arguments:
-nologo
— launches the game executable directly, bypassingrom0:PS2LOGO
-nogameid
— disables visual game ID-dkwdrv
— when PS1 disc is detected, launches DKWDRV frommc?:/BOOT/DKWDRV.ELF
instead ofrom0:PS1DRV
-dkwdrv=<path to DKWDRV>
— same as-dkwdrv
, but with custom DKWDRV path-ps1fast
— will force fast disc speed for PS1 discs when not using DKWDRV-ps1smooth
— will force texture smoothing for PS1 discs when not using DKWDRV-ps1vneg
— will run PS1DRV via the PS1DRV Video Mode Negator
For PS1 CDs with generic executable name (e.g. PSX.EXE
), attempts to guess the game ID using the volume creation date
stored in the Primary Volume Descriptor, based on the table from TonyHax International.
When the launcher receives fmcb0:<idx>
, fmcb1:<idx>
or fmcb9:<idx>
path as argv[0]
, it reads OSDMENU.CNF
from the respective memory card or the hard drive (fmcb9
),
searches for path?_OSDSYS_ITEM_<idx>
and arg_OSDSYS_ITEM_<idx>
entries and attempts to launch the ELF.
Respects cdrom_skip_ps2logo
, cdrom_disable_gameid
and cdrom_use_dkwdrv
for cdrom
paths.
When the launcher receives a path that ends with .CNF
, .cnf
, .CFG
or .cfg
,
it will run the quickboot handler using this file.
Config file can be located at any device as long as the device mountpoint is one of the listed above.
When the launcher is started without any arguments, it tries to open <ELF file name>.CNF
file at the current working directory
and attempts to launch every path in order.
Quickboot file syntax example:
boot=boot.elf
path=mmce?:/apps/wle.elf
path=mmce?:/apps/wle2.elf
path=ata:/apps/wle.elf
path=mc?:/BOOT/BOOT.ELF
arg=-testarg
arg=-testarg2
boot
— path relative to the config file
path
— absolute paths
arg
— arguments that will be passed to the ELF file
Most of OSDMENU.CNF
settings are directly compatible with those from FMCB 1.8 FREEMCB.CNF
.
OSDMenu supports up to 250 custom menu entries, each up to 79 characters long.
Note that left and right cursors are limited to 19 characters and top and bottom delimiters are limited to 79 characters.
DKWDRV and custom payload paths are limited to 49 characters.
OSDSYS_video_mode
— force OSDSYS mode. Valid values areAUTO
,PAL
,NTSC
,480p
or1080i
hacked_OSDSYS
— enables or disables OSDSYS patchesOSDSYS_scroll_menu
— enables or disables infinite scrollingOSDSYS_menu_x
— menu X center coordinateOSDSYS_menu_y
— menu Y center coordinateOSDSYS_enter_x
—Enter
button X coordinate (at main OSDSYS menu)OSDSYS_enter_y
—Enter
button Y coordinate (at main OSDSYS menu)OSDSYS_version_x
—Version
button X coordinate (at main OSDSYS menu)OSDSYS_version_y
—Version
button Y coordinate (at main OSDSYS menu)OSDSYS_cursor_max_velocity
— max cursor speedOSDSYS_cursor_acceleration
— cursor speedOSDSYS_left_cursor
— left cursor textOSDSYS_right_cursor
— right cursor textOSDSYS_menu_top_delimiter
— top menu delimiter textOSDSYS_menu_bottom_delimiter
— bottom menu delimiter textOSDSYS_num_displayed_items
— the number of menu items displayedOSDSYS_Skip_Disc
— enables/disables automatic CD/DVD launchOSDSYS_Skip_Logo
— enables/disables SCE logo (also needsOSDSYS_Skip_Disc
to be disabled to actually show the logo)OSDSYS_Inner_Browser
— enables/disables going to the Browser after launching OSDSYSOSDSYS_selected_color
— color of selected menu entryOSDSYS_unselected_color
— color of unselected menu entryname_OSDSYS_ITEM_???
— menu entry namepath?_OSDSYS_ITEM_???
— path to ELF. Also supports the following special paths:cdrom
,OSDSYS
,POWEROFF
New to OSDMenu/HOSDMenu:
arg_OSDSYS_ITEM_???
— custom argument to be passed to the ELF. Each argument needs a separate entry.cdrom_skip_ps2logo
— enables or disables running discs viarom0:PS2LOGO
. Useful for MechaPwn-patched consoles.cdrom_disable_gameid
— disables or enables visual Game IDcdrom_use_dkwdrv
— enables or disables launching DKWDRV for PS1 discsOSDSYS_Browser_Launcher
— enables/disables patch for launching applications from the Browserps1drv_enable_fast
— will enable fast disc speed for PS1 discs when not using DKWDRVps1drv_enable_smooth
— will enable texture smoothing for PS1 discs when not using DKWDRVps1drv_use_ps1vn
— will run PS1DRV using the PS1DRV Video Mode Negator
Options exclusive to OSDMenu:
path_DKWDRV_ELF
— custom path to DKWDRV.ELF. The path MUST be on the memory card
Options exclusive to HOSDMenu (mostly for running from __mbr
):
path_custom_payload
— full path to custom payload onhdd0:__system
, will be run when the Cross button is pressed during initializationboot_custom_payload
— if enabled, will invert the original behavior and run custom payload by default
- Everyone involved in developing the original Free MC Boot and OSDSYS patches, especially Neme and jimmikaelkael
- Julian Uy for mapping out significant parts of HDD OSD for osdsys_re project
- TonyHax International developers for PS1 game ID detection for generic executables.
- Maximus32 for creating the
smap_udpbd
module and Neutrino GSM - Matías Israelson for making PS2BBL
- CosmicScale for RetroGEM Disc Launcher
- Ripto for creating the OSDMenu Browser icons and Yornn for collecting all files required for the PSU package