ps2homebrew / hdl-dump

Install games in HDLoader format to APA-formatted hard drive
122 stars 25 forks source link

[FR] Add option to extract main game executable (mentioned in SYSTEM.CNF) from HDL partition #44

Closed GDX-X closed 2 years ago

GDX-X commented 2 years ago

Checks

Describe the FR

Would it be possible to add option to extract ELF from HDL partition? without extracting the full iso?

Describe the solution you'd like

Example: hdl_dump elfextract hdd2: PP.SLES-51061..GRAND_THEFT_AUTO SLES-510.61

Describe alternatives you've considered

No response

Additional context

No response

bignaux commented 2 years ago
$ hdl_dump info /dev/sdb Netflix
SLUS21949: [Netflix], CD
opl compatibility flags: 1+3+4+7+8
dma mode: *u4
        part  1 is from sector 0x01282000,  258048KB long
        part  2 is from sector 0x01300800,  523264KB long
        part  3 is from sector 0x01400800,  469632KB long
Total size: 1250944KB (1221MB approx.)
$ losetup -o$((0x01282000*512)) --sizelimit 4GB /dev/loop0  /dev/sdb 
$ 7z l /dev/loop0

finished. best to script, turn info to info_json .

israpps commented 2 years ago

$ hdl_dump info /dev/sdb Netflix SLUS21949: [Netflix], CD opl compatibility flags: 1+3+4+7+8 dma mode: _u4 part 1 is from sector 0x01282000, 258048KB long part 2 is from sector 0x01300800, 523264KB long part 3 is from sector 0x01400800, 469632KB long Total size: 1250944KB (1221MB approx.) $ losetup -o$((0x01282000_512)) --sizelimit 4GB /dev/loop0 /dev/sdb $ 7z l /dev/loop0 finished. best to script, turn info to info_json .

He doesn't want game information.

He wants the game ELF file to generate master code for that game AFAIR

bignaux commented 2 years ago

7z and a lot of software allows you to extract the data. I illustrate with listing but extract is e instead of l.C'mon!

israpps commented 2 years ago

7z and a lot of software allows you to extract the data. I illustrate with listing but extract is e instead of l.C'mon!

He has that part covered.

He wants master code generator for installed games

bignaux commented 2 years ago

I answered precisely to the ask here, he can "extract ELF from HDL partition? without extracting the full iso" : $ 7z e /dev/loop0 SLES-510.61

bignaux commented 2 years ago

i'd insist on do not use human readable output from CLI as software input even for batching. Example here, even with the perfect regex, you won't obtain byte size of the iso part, then you would have some issue when losetup -o$((0x01282000*512)) --sizelimit 1259964416 /dev/loop0 /dev/sdb is better in that case. That's right i'd really prefer contribution about json output than special need command.

AKuHAK commented 2 years ago

@bignaux you didnt handle option when game consist of several chunks (subpartitions). Also game can fill not the whole partition, so you need to extract game end lba from hdl header.

bignaux commented 2 years ago

Oki dude, apascan do the device-mapper job, soon on ps2homebrew i think (the guy is retire from PS2 but still active, i will manage that, i've great ideas about this 330LOC) .

AKuHAK commented 2 years ago

In #48 added option to mount hdl partitions as virtual image (not for windows) so this issue is partially fixed.

bignaux commented 2 years ago

If windows people can find a similar solution, i don't find a native one clearly explain, but they should have (since dm is based of luck and they have it), and there is lot of software provide kind of feature.