PlayStation Disc Burner (PSDB): Patch (ESR, Master Disc, PSX80MP, LibCrypt, etc.) + Burn PS2 and PS1 Discs

alexfree

Well-Known Member
OP
Member
Joined
Nov 17, 2021
Messages
352
Trophies
0
Website
alex-free.github.io
XP
1,794
Country
United States
https://github.com/alex-free/playstation-disc-burner
https://alex-free.github.io/psdb

This is an open source tool kit that allows you to burn PS2 and PS1 backup discs on Linux, with the option of patching the disc image in various ways:

  • ESR patch PS2 games, and burn them to DVD-R.
  • Master Disc patch PS2 games, and burn them to CD-R or DVD-R.
  • LibCrypt patch PS1 games, and burn them to a CD-R.
  • PSX 80 Minute patch PS1 or PS2 games, and burn them to a CD-R.
  • Support for compressed files. If PSDB finds a file ending in .iso, .ISO, .cue, .CUE, .BIN, or .bin in a compressed archive format that p7zip supports it will automatically be extracted and configured for all features.
  • Burn PS2 and PS1 games to CD-R or DVD-R as-is (no patching). PDB correctly burns EDC/ECC protected PS1 games by default.
  • Save the desired burn speed to a configuration file, which can be set with a PSDB option.
 

Fien

Well-Known Member
Member
Joined
Sep 27, 2021
Messages
328
Trophies
0
XP
1,888
Country
Netherlands
I think a 32-bit Linux build is more useful for use on older PC's with P-ATA burners. Like Pentium 3 and 4 machines :)

And does it have a verification option after burning? It seems like sometimes a burn fail only on one file. Imgburn catches this with it's verification function, but if not, the game will probably crash at the point it needs that one file.


Edit: I see these compiling instructions (https://github.com/alex-free/playstation-disc-burner/blob/master/build.md). I'll try this tomorrow on my Pentium 4 with Debian 12 32-bit.
Post automatically merged:

It doesn't build on a 32-bit Debian 12 system using the instructions. I suppose that's because it isn't automatically downloading the dependencies.

First time it gave this error because even " make" was not installed:
Code:
root@ws44:~/playstation-disc-burner# ./build
./build: regel 54: make: opdracht niet gevonden

Uncaught error in ./build, line number: 54
Clearing temp files...

After installing make other errors came up:
Code:
root@ws44:~/playstation-disc-burner# ./build
make: Map '/tmp/psdb.Mw9/psx80mp' wordt binnengegaan
make psx80mp
make[1]: Map '/tmp/psdb.Mw9/psx80mp' wordt binnengegaan
rm -rf psx80mp.exe psx80mp
gcc -Wall -Werror -Os -static psx80mp.c -o psx80mp
make[1]: gcc: Bestand of map bestaat niet
make[1]: *** [GNUmakefile:9: psx80mp] Fout 127
make[1]: Map '/tmp/psdb.Mw9/psx80mp' wordt verlaten
make: *** [GNUmakefile:21: linux-x86_64] Fout 2
make: Map '/tmp/psdb.Mw9/psx80mp' wordt verlaten

Uncaught error in ./build, line number: 54
Clearing temp files...
 
Last edited by Fien,
  • Like
Reactions: alexfree

alexfree

Well-Known Member
OP
Member
Joined
Nov 17, 2021
Messages
352
Trophies
0
Website
alex-free.github.io
XP
1,794
Country
United States
I think a 32-bit Linux build is more useful for use on older PC's with P-ATA burners. Like Pentium 3 and 4 machines :)

And does it have a verification option after burning? It seems like sometimes a burn fail only on one file. Imgburn catches this with it's verification function, but if not, the game will probably crash at the point it needs that one file.


Edit: I see these compiling instructions (https://github.com/alex-free/playstation-disc-burner/blob/master/build.md). I'll try this tomorrow on my Pentium 4 with Debian 12 32-bit.
Post automatically merged:

It doesn't build on a 32-bit Debian 12 system using the instructions. I suppose that's because it isn't automatically downloading the dependencies.

First time it gave this error because even " make" was not installed:
Code:
root@ws44:~/playstation-disc-burner# ./build
./build: regel 54: make: opdracht niet gevonden

Uncaught error in ./build, line number: 54
Clearing temp files...

After installing make other errors came up:
Code:
root@ws44:~/playstation-disc-burner# ./build
make: Map '/tmp/psdb.Mw9/psx80mp' wordt binnengegaan
make psx80mp
make[1]: Map '/tmp/psdb.Mw9/psx80mp' wordt binnengegaan
rm -rf psx80mp.exe psx80mp
gcc -Wall -Werror -Os -static psx80mp.c -o psx80mp
make[1]: gcc: Bestand of map bestaat niet
make[1]: *** [GNUmakefile:9: psx80mp] Fout 127
make[1]: Map '/tmp/psdb.Mw9/psx80mp' wordt verlaten
make: *** [GNUmakefile:21: linux-x86_64] Fout 2
make: Map '/tmp/psdb.Mw9/psx80mp' wordt verlaten

Uncaught error in ./build, line number: 54
Clearing temp files...
I just pushed a commit to fix the build dependencies, but many other things in the build script are expecting x86_64 and not i386. I will work on that soon and get back to you.
Post automatically merged:

Any plans for a Windows build?
Yes, it is in the TODO list in the readme.
 

Fien

Well-Known Member
Member
Joined
Sep 27, 2021
Messages
328
Trophies
0
XP
1,888
Country
Netherlands
I tested the 64-bit version in the meantime, but saw two things:

First one is that it doesn't seem to allow you to select a burner? The PC has 3 burners, but after I select the "1" option, it just wait for the first burner (/dev/sr0) to be ready and doesn't check if I put a disc in /dev/sr2.

Second one is it only seem to work if you're "root" using "su -" first if you're using a user account which isn't in the sudo list. It will just ask for the password which won't be accepted otherwise.
 
  • Like
Reactions: alexfree

alexfree

Well-Known Member
OP
Member
Joined
Nov 17, 2021
Messages
352
Trophies
0
Website
alex-free.github.io
XP
1,794
Country
United States
I tested the 64-bit version in the meantime, but saw two things:

First one is that it doesn't seem to allow you to select a burner? The PC has 3 burners, but after I select the "1" option, it just wait for the first burner (/dev/sr0) to be ready and doesn't check if I put a disc in /dev/sr2.

Second one is it only seem to work if you're "root" using "su -" first if you're using a user account which isn't in the sudo list. It will just ask for the password which won't be accepted otherwise.

Oh I can fix those. I’ll check EUID before executing with sudo, and I’ll add an option to set the burner to a config file (like the burn speed option). Thanks for the feedback, I’ll let you know when I implement that and 32 bit builds.
 
  • Like
Reactions: Fien

alexfree

Well-Known Member
OP
Member
Joined
Nov 17, 2021
Messages
352
Trophies
0
Website
alex-free.github.io
XP
1,794
Country
United States
@Fien

v1.0.1 (7/25/2024)​


Changes:

  • Added an option to select a specific burner to use. This is saved to a configuration file used on startup. The Linux default is /dev/sr0, but if you have multiple burners this could be /dev/sr1, /dev/sr2, etc..
  • Added automatic installation of build dependencies for APT Linux systems (Pop!OS, Ubuntu, Debian, etc.) in the build script.
  • Added support for building for Linux i686 (x86 32 bit Pentium or better) to the build script.
  • Updated burn functions to check for if the user is already root before executing either the cdrdao or cdrecord executable with sudo.
  • Added my EDCRE. EDC/ECC is now corrected if it is found invalid in any sectors after the system volume descriptor, where game data lives. Sectors before the system volume descriptor are left untouched as invalid EDC/ECC in those sectors are used in EDC protected PS1 games.
 
  • Like
Reactions: Fien

Fien

Well-Known Member
Member
Joined
Sep 27, 2021
Messages
328
Trophies
0
XP
1,888
Country
Netherlands
Both the 32-bit and 64-bit portable releases does burn a cue/bin image :)

Burner selection is tested on the 64-bit system - works.

On the 32-bit version I tried the Libcrypt patch option on a PAL Crash Team Racing cue/bin (this is so far I know a Libcrypt-game), but this one ends in a error code:
Code:
root@ws44:~/playstation-disc-burner-v1.0.1-i686# ./psdb 'CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl) (EDC).cue'
PlayStation Disc Burner (PSDB) v1.0.1 By Alex Free

Burner: /dev/sr0

Burn speed: 4x

What do you want to do with "CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl) (EDC).bin"?

=====================================
CD BIN/CUE Options
=====================================
1) Burn                       5) Add LibCrypt patch and burn         9) Change burn speed
2) Add Master Disc patch           6) Add PSX 80 Minute patch        10) Quit
3) Add Master Disc patch and burn      7) Add PSX 80 Minute patch and burn
4) Add LibCrypt patch               8) Change burner
Enter an option number: 4
EDCRE v1.0.7 - EDC/ECC Regenerator By Alex Free
https://alex-free.github.io/edcre
Made Possible By Modifying CDRDAO (GPLv2) Source Code:
https://github.com/cdrdao/cdrdao

Starting EDC/EEC Regeneration at LBA 166 (0x00009300)
Scanning LBA 314852
No sectors needed EDC/ECC regeneration, nothing done
./psdb: regel 290: lcp: opdracht niet gevonden

Uncaught error in ./psdb, line number: 290
Clearing temp files...

And it still ask for "sudo" if I'm logged in with a normal user that's not part of the sudo group (LDAP user). Why it need root access to use cdrdao? So far I know portable cdrdao can burn without root rights as long as the user is member of the "cdrom" group?
 

alexfree

Well-Known Member
OP
Member
Joined
Nov 17, 2021
Messages
352
Trophies
0
Website
alex-free.github.io
XP
1,794
Country
United States
Both the 32-bit and 64-bit portable releases does burn a cue/bin image :)

Burner selection is tested on the 64-bit system - works.

On the 32-bit version I tried the Libcrypt patch option on a PAL Crash Team Racing cue/bin (this is so far I know a Libcrypt-game), but this one ends in a error code:
Code:
root@ws44:~/playstation-disc-burner-v1.0.1-i686# ./psdb 'CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl) (EDC).cue'
PlayStation Disc Burner (PSDB) v1.0.1 By Alex Free

Burner: /dev/sr0

Burn speed: 4x

What do you want to do with "CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl) (EDC).bin"?

=====================================
CD BIN/CUE Options
=====================================
1) Burn                       5) Add LibCrypt patch and burn         9) Change burn speed
2) Add Master Disc patch           6) Add PSX 80 Minute patch        10) Quit
3) Add Master Disc patch and burn      7) Add PSX 80 Minute patch and burn
4) Add LibCrypt patch               8) Change burner
Enter an option number: 4
EDCRE v1.0.7 - EDC/ECC Regenerator By Alex Free
https://alex-free.github.io/edcre
Made Possible By Modifying CDRDAO (GPLv2) Source Code:
https://github.com/cdrdao/cdrdao

Starting EDC/EEC Regeneration at LBA 166 (0x00009300)
Scanning LBA 314852
No sectors needed EDC/ECC regeneration, nothing done
./psdb: regel 290: lcp: opdracht niet gevonden

Uncaught error in ./psdb, line number: 290
Clearing temp files...

And it still ask for "sudo" if I'm logged in with a normal user that's not part of the sudo group (LDAP user). Why it need root access to use cdrdao? So far I know portable cdrdao can burn without root rights as long as the user is member of the "cdrom" group?

Thanks, I fixed the libcrypt patcher issue (it happened when updating the build script to support i686 Linux).

Root privilages ensures that cdrecord or cdrdao can access the burner and send all the neccesary SCSI commands successfully. It also prevents buffer underruns that cause coasters. I've also noticed if you use this on i.e. Live CD it can't accesss the burner without root privilages, so in general it's just good practice (which is what i'm trying to provide here).

v1.0.2 (7/26/2024)​



Changes:

  • Fixed LibCrypt patcher command not found issue.
 

alexfree

Well-Known Member
OP
Member
Joined
Nov 17, 2021
Messages
352
Trophies
0
Website
alex-free.github.io
XP
1,794
Country
United States
v1.0.3 (8/7/2024)

Changes:
  • Added ability to set a burn speed for CD and DVDs independently. You can have one speed set for CDs, and another for DVDs.
  • Updated EDCRE to version 1.0.8.
  • Added ability to set burn speed with command line arguments (-cds <cd burn speed> or -dvds <dvd burn speed>) without having to give a valid input file first.
  • Added ability to set the burner with command line arguments (-b <burner>) without having to give a valid input file first.
  • Fixed setting burner in the DVD ISO options menu.
 

Ponlork

Active Member
Newcomer
Joined
Apr 2, 2021
Messages
28
Trophies
0
XP
272
Country
United States
this looks promising. commenting to bookmark. I'll run it on my playstation classic using a external cd/dvd drive. shouldnt this in theory work for anything? like burning Audio CDs or DVD movie ISOs
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    lapot2 @ lapot2: drink something similar in color