This repository contains portable Python replacements for the tools required by Redump when submitting PSP games.
IsoBuster, Hashcalc and SFOInfo are replaced by the redump_psp.py
script.
Given an ISO file, it will generate a pre-filled Redump submission, containing:
- File size
- Hashes (MD5, CRC32, SHA1, SHA256)
- ISO PVD Hexdump
- SFO information
sfo_info.py
can be used by itself as a standalone sfo_info.exe replacement.
- Python 3 (>= 3.6)
- pycdlib
Windows exe builds are available in the release tab.
redump_psp <iso_file> [--out <output_file>]
sfo_info <iso_file>
It is formatted for Redump forum posts, hence the [code] tags. You can easily remove them in redump_psp_template.py
if needed.
General Info:
[code]
Game Name: <FILL_ME>
Serial Number:<FILL_ME>
Dumping PSP: <FILL_ME>
Dumping Tool: <FILL_ME>
Filesize: 1,495 MB (1,568,079,872 bytes)
Barcode: <FILL_ME>
Edition: <FILL_ME>
Languages: <FILL_ME>
Ring Codes:
- Outer Ring Mastering Code (laser branded/etched): <FILL_ME>
- Outer Ring Mastering SID Code: <FILL_ME>
- Outer Ring Toolstamp (engraved/stamped): <FILL_ME>
- Inner Ring Mastering Code (laser branded/etched): <FILL_ME>
- Inner Ring Mastering SID Code: <FILL_ME>
- Inner Ring Toolstamp (engraved/stamped): <FILL_ME>
- Mould SID Code: <FILL_ME>
[/code]
HashCalc Info:
[code]
MD5: dd60041bfb6d677fdaacd2cf9cb6d84a
SHA1: 88a19042041ff368b9cb887432cb5255c654c33c
CRC32: 83adb164
SHA256: c824f63de2f8bf779e73cad524cd3619fc852d8d669fc00f97f110acecb3015d
[/code]
Primary Volume Descriptor (PVD)
[code]
0320 : 20 20 20 20 20 20 20 20 20 20 20 20 20 32 30 30 200
0330 : 35 30 34 32 31 31 35 33 33 31 38 30 30 24 30 30 5042115331800$00
0340 : 30 30 30 30 30 30 30 30 30 30 30 30 30 30 00 30 00000000000000.0
0350 : 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 00 000000000000000.
0360 : 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0000000000000000
0370 : 00 02 00 55 43 45 54 2D 30 30 30 30 36 7C 45 32 ...UCET-00006|E2
[/code]
SFO Info:
[code]
SFO file: /PSP_GAME/PARAM.SFO
SFO Version: 1.1
BOOTABLE: 1
CATEGORY: UG
DISC_ID: UCET00006
DISC_NUMBER: 1
DISC_TOTAL: 1
DISC_VERSION: 0.01
PARENTAL_LEVEL: 2
PSP_SYSTEM_VER: 1.50
REGION: 32768
TITLE: WRC
SFO file: /PSP_GAME/SYSDIR/UPDATE/PARAM.SFO
SFO Version: 1.1
BOOTABLE: 1
CATEGORY: MG
DISC_VERSION: 1.00
PARENTAL_LEVEL: 1
REGION: 32768
TITLE: PSP™ Update ver 1.50
TITLE_0: PSP™ アップデート ver 1.50
TITLE_2: Mise à jour PSP™ ver. 1.50
TITLE_3: Actualización de PSP™ ver. 1.50
TITLE_4: PSP™-Aktualisierung Ver. 1.50
TITLE_5: Aggiornamento della PSP™
ver. 1.50
TITLE_6: PSP™-update versie 1.50
TITLE_7: Actualização PSP™ ver 1.50
TITLE_8: Обновление PSP™ вер. 1.50
UPDATER_VER: 1.50
[/code]
Below is a simple script I've made that auto-generates submissions for every ISO in the given directory. Make sure it only contains PSP ISOs.
import os
from redump_psp.redump_psp import gen_psp_redump
import argparse
parser = argparse.ArgumentParser(
description='Find ISOs and generate redump submissions')
parser.add_argument('dir', type=str, help='Directory')
args = parser.parse_args()
for root, dirs, files in os.walk(args.dir):
for name in files:
if not name.endswith('.iso'):
continue
iso_name = name[:-4]
if iso_name + '.nfo' in files:
continue
print(f"Generating submission for {name}...")
gen_psp_redump(os.path.join(root, iso_name + '.iso'),
os.path.join(root, iso_name + '.nfo'))
print("Done.")