Config Table ($410โ$42F)
POPStarter r13 stores a 32-byte configuration table at file offset $410 inside POPSTARTER.ELF/.KELF. Each byte is one setting.
๐ from the recovered Configuration Table wiki page ยท merged across snapshots, primary 20170812012646
POPStarter Configuration Table โ Advanced Settings
This documentation concerns the advanced configuration of POPStarter r13, involving the harcoding (or the patch-on-load) of settings to the POPStarter ELF/KELF...
The POPStarter r13 ELF and KELF have a 32 bytes long configuration table, starting from the offset $410 (or 1040 in decimal).
- Caution : Unless you know exactly what it is for and what youโre doing, please donโt tamper with it. Hexediting of that stuff is for advanced users only. Make a backup of the default config before you start changing values. If you are not sure, read the section below (PPF bunch pack).
| Offset | Description | Values | Notes |
| $410 | Display of the debug texts/pages | 0x00 = disables the debug printing | |
| 0x01 < X < 0xFF = defines the delay between each page of texts | The higher the value is, the longer the delay is | ||
| 0xFF = the debug texts are displayed in realtime without delay (like in POPStarter 12 and lower) | |||
| $411 | Break the POPStarter execution after an error has occured | 0x00 = POPStarter prints the error message for a short time, then it kicks the user to the OSD. | |
| 0x0X POPStarter prints the error message and sleeps on that screen indefinitely | |||
| $412 | SetGsCrt hack | 0x00 = disabled (default) | |
| 0x01 = enabled | Helps with the HDTVs that canโt deal with the interlaced resolutions thru component (plain green screens and other rubbish displayed otherwise). | ||
| $413 | USB access delay, after the execution of the POPStarter embedded USB modules | 0x02 should be fine. Increase the value if POPStarter fails to access your USB device | |
| $414 | RESERVED (in USB operation mode) | Must be 0x40 | |
| $415 | User ID for individual VMCs | If set to 0x00, the function is disabled. | For assigning an ID to the couple of VMC, the value must be an ASCII character of โ0โ, โ1โ, โ2โ, โ3โ, โ4โ, โ5โ, โ6โ, โ7โ, โ8โ or โ9โ |
| $416 | POPS dev9 module loading (in USB operation mode) | 0x00 = Let POPS load it Default is 0x03. If you need to wake the NIC up (for debugging stuff for example), set this to 0x00 | |
| 0x03 = Forbids its loading | |||
| $417 | NOT USED | ||
| $418 | Force a single compatibility mode | 0x00 = No compatibility mode is forced | |
| 0x0X = the respective compatibility mode is forced and the automatic activator gets disabled | |||
| $419 | Force a single compatibility mode | 0x00 = No compatibility mode is forced | |
| 0x0X = the respective compatibility mode is forced and the automatic activator gets disabled | |||
| $41A | Force a single compatibility mode | 0x00 = No compatibility mode is forced | |
| 0x0X = the respective compatibility mode is forced and the automatic activator gets disabled | |||
| $41B | Force a single compatibility mode | 0x00 = No compatibility mode is forced | |
| 0x0X = the respective compatibility mode is forced and the automatic activator gets disabled | |||
| $41C | Force a single compatibility mode | 0x00 = No compatibility mode is forced | |
| 0x0X = the respective compatibility mode is forced and the automatic activator gets disabled | |||
| $41D | Force a single compatibility mode | 0x00 = No compatibility mode is forced | |
| 0x0X = the respective compatibility mode is forced and the automatic activator gets disabled | |||
| $41E | Force a single compatibility mode | 0x00 = No compatibility mode is forced | |
| 0x0X = the respective compatibility mode is forced and the automatic activator gets disabled | |||
| $41F | Force a single compatibility mode | 0x00 = No compatibility mode is forced | |
| 0x0X = the respective compatibility mode is forced and the automatic activator gets disabled | |||
| $420 | Patch the genuine HDD check | 0x00 = Donโt patch | Totally useless. When running in a PS2, a homebrew ATAD is used. When running in a PSX, the original POPS ATAD is used. Leave it to 0x01 |
| 0x01 = Patch | |||
| $421 | Loading and execution of the OSD shell of the POPS built-in BIOS | 0x00 = Load in the user memory and execute (donโt patch anything) | 0x01 has the same effect as the compatibility mode 0x06. Skips the CD checks and the PS logo. Both donโt work if the user uses a BIOS.BIN |
| 0x01 = Donโt load, donโt execute | |||
| $422 | Exception breakpoints control | 0x00 = Break the emulator (donโt patch anything) | 0x01 NOPs the break instructions of the 2nd-stage exception handler, allowing the user to trigger IGR after the emulation has crashed (in a few cases) |
| 0x01 = Donโt break the emulator | |||
| $423 | Original SLBB-00001 disc0 integrity check control | 0x00 = Donโt skip the integrity check | |
| 0x01 = Skip the integrity check | |||
| $424 | IGR exit method | 0x00 = Original SLBB-00001+PSBBN method | 0x00 causes the emulator to read the MBR by its own, without flushing the cache and without resetting the IOP. Crashy for most users. |
| 0x01 = POPStarter r13 method | |||
| $425 | IOPCD stack size (in USB operation mode) | 0x00 = Donโt patch | |
| 0x01 = Patch | |||
| $426 | Delcroโs patches (in USB operation mode) | 0x00 = Donโt apply those to POPS | |
| 0x01 = Apply those to POPS | |||
| $427 | Emulator modules loading failure | 0x00 = Donโt patch (Kick to the PS2 OSD) | For your h4ร0ring needz. . Patch it so you no longer have to care about the returned code of your injected IRX. |
| 0x01 = Patch (Ignore and continue) | |||
| $428 | Internal HDD initialization failure | 0x00 = Donโt patch (Kick to the PS2 OSD) | For your h4ร0ring needz. |
| 0x01 = Patch (Ignore and continue) | |||
| $429 | Virtual Memory Cards control | 0x00 = Use both VMCs | |
| 0x01 = Donโt use VMCs at all | |||
| 0x02 = Use just the first VMC in the first virtual slot | |||
| $42A | Automatic PAL patch upon European VCD recognition | 0x00 = Disabled | The Automatic PAL Patcher of POPStarter expects โEuroโ at the offset $102514 of the VCD |
| 0x01 = Enabled | |||
| 0x02 = Force 480p | |||
| $42B | Resident modules loader | 0x00 = Disabled | POPS/MODULE_0.IRX POPS/MODULE_1.IRX... up to POPS/MODULE_9.IRX. Are executed AFTER the IOP gets reset with IOPRP252.IMG, for Great Justice. |
| 0x01 = Enabled | |||
| $42C | Software PowerOff fix | 0x00 = Disabled | Canโt remember what it is. Perhaps itโs a redundant option of a deimplemented functionโฆ Prolific, mass ? |
| 0x01 = Enabled | |||
| $42D | IGR textures loader | 0x00 = Disabled | POPS/IGR_BG.TM2 POPS/IGR_NO.TM2 POPS/IGR_YES.TM2 |
| 0x01 = Enabled | |||
| $42E | Game license/region check of the POPS built-in BIOS | 0x00 = Leave unpatched | The patch just NOPs the loop. The PS logo is not shown when a non-JAP game is run. |
| 0x01 = Patch it so it does not loop the check when the VCD isnโt NTSC J | |||
| $42F | POPStarter automatic compatibility mode activator | 0x00 = Do not enable anything | If set to 0x03 and a compatibility mode is forced, it will be changed to 0x02 automatically (applies the forced modes and not the automatic ones) |
| 0x01 = Enable the automatic compatibility modes activation | |||
| 0x02 = Enable the other subroutines (like LibCrypt cracks, when available) | |||
| 0x03 = Enable all |
Default values :
PPF bunch pack :
=================================================================================
-----------------------PPF Bunch pack for POPStarter r13-------------------------
=================================================================================
Hi !
I am a bunch of .PFF files. You can use me to enable POPStarter advanced settings. You need a PPF patcher (such as PPF-O-Matic) to use me and apply PPF over POPStarter.ELF.
Here is what I can do for you :
- File name : description (notes)
- NO_LC_CRACKS.PPF : Disables the built-in LC cracks of POPStarter r13 (from WIP05. Automated modes are disabled also).
- DEBUG_AND_HALT.PPF : Prints the screen debug messages and halt (from WIP05).
- NO_VMC.PPF : Disables VMC feature (new)
- ONLY_1ST_VMC.PPF : Only the first VMC in the first virtual slot is created (new)
- NO_PAL.PPF : Disables the automatic PAL patch (new)
- FORCE_MODEX.PPF : Mode X hardcoded into POPStarter r13 (new)
- DEFAULT_IGR_TEXTURES.PPF : Disables the IGR textures loader (new)
- LC_ONLY.PPF : Enable the other subroutines (like LibCrypt cracks), disable the compatibility modes. (new).
- NO_AUTO_PATCH.PPF : Disables everything (modes, LC cracks...) (new).
Images & screenshots
The 32-byte config table in POPSTARTER.ELF/.KELF
POPStarter r13 stores a single contiguous 32-byte configuration table at file offset $410 (1040 dec) through $42F, one byte per setting, in both the ELF and the KELF (byte-identical tables). The verified factory default is: 00 00 00 02 40 00 03 01 | 00 00 00 00 00 00 00 00 | 01 00 01 01 01 01 01 01 | 01 00 01 01 01 01 01 03. Patch it by direct hex edit or via the PPF bunch pack (PPF-O-Matic); always back up the original 32 bytes first.
The base report's four seed offsets are adjudicated as follows. $410 = debug-text display (00 = off / 'classic', 01-FE = paced page delay, FF = realtime / old POPStarter-12 behaviour) - the base's '04 = debug print' is imprecise, since 04 is merely a short delay. $413 = USB access delay, default 0x02 (raise it if a USB drive isn't detected) - and this is the offset that fixes detection, NOT the $USBDELAY_# cheat, which patches POPS for streaming. $42A is multi-valued: 00 = PAL patcher off, 01 = auto-PAL (default), 02 = force 480p. The big correction is $412: in r13 it is the SetGsCrt/HDTVFIX hack (default 0x00), NOT a 'function skipper.' The function skipper genuinely lived at $412 in pre-Beta-13 builds and was REMOVED in Beta 13 (2015-12-07, ~10 KB saved); the freed byte was repurposed for HDTVFIX in Beta 15/16. Relatedly, the USB delay migrated: the 2015 PFS-wrapper delay was at $417 (default 0x05 then 0x00), which is marked 'NOT USED' in r13 - old guides citing 417h are obsolete.
Beyond the seeds, the full table was recovered: $411 halt-on-error, $414 RESERVED (=0x40), $415 per-VMC user ID (ASCII digit), $416 POPS dev9 loading, $418-$41F the 8-slot force-compatibility array, $420 HDD check (leave 0x01), $421 BIOS OSD shell (= mode 0x06), $422 exception breakpoints (IGR-after-crash), $423 SLBB-00001 integrity, $424 IGR exit method (gates the BOOT.ELF chain), $425 IOPCD stack, $426 Delcro's patches, $427/$428 module/HDD failure-ignore, $429 VMC count (00 both / 01 none / 02 first only), $42B MODULE_#.IRX resident loader, $42C software-poweroff fix (purpose uncertain even to the author), $42D IGR-textures loader, $42E region/license check, and $42F the auto-patch master switch (00 none / 01 auto modes / 02 LibCrypt subroutines / 03 all (default) / 04 test mode). The PPF bunch pack maps friendly patches onto these bytes: DEBUG_AND_HALT ($410+$411), NO_VMC / ONLY_1ST_VMC ($429), NO_PAL ($42A), FORCE_MODEX ($418-$41F), DEFAULT_IGR_TEXTURES ($42D), LC_ONLY / NO_AUTO_PATCH / NO_LC_CRACKS ($42F).
From the official thread โ config-table & direct hex edits
Sourced from the official psx-place POPStarter thread.
krHACKen items are authoritative.
$HDTVFIXcan be applied by direct hex edit: config-table offset$412, change the value from
00to01insidePOPSTARTER.ELF. Use this when theCHEATS.TXTroute green-screens on internal HDD.
(krHACKen)- Offset
$413is the USB device access / detection-retry delay (default0x02). If one USB HDD/stick
works but another isn't detected, hex-edit$413up to0x04โ0x05(higher for slow externals). This is
the byte that actually fixes USB detection โ not the$USBDELAY_#cheat (which patches POPS for
streaming). (jolek / Okeanos) - POPStarter ships a built-in per-game default-config table. Example: Final Fantasy IX has
$COMPATIBILITY 0x04enabled by default (since WIP02), so it "just works" with no CHEATS.TXT. (Peppe90) - The SMB-mode startup debug overlay cannot be disabled in the 2019-06-05 build โ there is no CHEATS.TXT
or config switch for it; it is cosmetic. (VanhuX)
See the full per-offset table in the Config Table section above; these thread notes pin down
$412/$413with concrete edit values.
Per-offset reference cards (cross-sourced summary)
Config table location/size primary config
$410 - debug text display primary config
$411 - break/halt on error primary config
$412 - SetGsCrt / HDTVFIX hack primary config
$413 - USB access delay primary config
$414 - RESERVED primary config
$415 - per-VMC user ID primary config
$416 - POPS dev9 module loading primary config
$417 - NOT USED (legacy PFS-wrapper USB delay) primary config
$418-$41F - force compatibility modes (8 slots) primary config
$420 - patch the genuine HDD check primary config
$421 - load/execute POPS BIOS OSD shell primary config
$422 - exception breakpoints primary config
$423 - SLBB-00001 disc0 integrity check primary config
$424 - IGR exit method primary config
$425 - IOPCD stack size patch primary config
$426 - Delcro's patches primary config
$427 - emulator-modules load-failure behavior primary config
$428 - internal-HDD init-failure behavior primary config
$429 - Virtual Memory Cards control primary config
$42A - auto-PAL patch / 480p primary config
$42B - resident modules loader primary config
$42C - software PowerOff fix primary config
$42D - IGR textures loader primary config
$42E - game license/region check primary config
$42F - automatic compatibility-mode activator (master switch) primary config
'classic 00 vs debug FF' build label near-primary config
All 1 wiki pages in this topic
Every recovered page filed under this section โ including the deep-reference pages not embedded above.
