├── .gitattributes ├── CRC16.bmx ├── CUE2CCD.bat ├── LICENSE ├── LSD Patches ├── Actua Ice Hockey 2 (Europe).lsd ├── Anstoss - Premier Manager (Germany).lsd ├── Ape Escape (Europe).lsd ├── Ape Escape (France).lsd ├── Ape Escape (Germany).lsd ├── Ape Escape (Italy).lsd ├── Ape Escape - La Invasion de los Monos (Spain).lsd ├── Asterix - Mega Madness (Europe) (En,Fr,De,Es,It,Nl).lsd ├── BDFL Manager 2001 (Germany).lsd ├── BDFL Manager 2002 (Germany).lsd ├── Barbie - Aventure Equestre (France).lsd ├── Barbie - Race & Ride (Europe).lsd ├── Barbie - Race & Ride (Germany).lsd ├── Barbie - Race & Ride (Italy).lsd ├── Barbie - Race & Ride (Spain).lsd ├── Barbie - Sports Extreme (France).lsd ├── Barbie - Super Sport (Germany).lsd ├── Barbie - Super Sports (Europe).lsd ├── Barbie - Super Sports (Italy).lsd ├── Barbie - Super Sports (Spain).lsd ├── CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl) (EDC).lsd ├── CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl).lsd ├── Canal+ Premier Manager (Europe) (Fr,Es,It).lsd ├── Cochons de Guerre, Les (France).lsd ├── Crash Bash (Europe) (En,Fr,De,Es,It).lsd ├── Dino Crisis (Europe).lsd ├── Dino Crisis (France).lsd ├── Dino Crisis (Germany).lsd ├── Dino Crisis (Italy).lsd ├── Dino Crisis (Spain).lsd ├── Disney Fais Ton Histoire! Mulan (France).lsd ├── Disney Libro Animato Creativo - Mulan (Italy).lsd ├── Disney Tarzan (France).lsd ├── Disney Tarzan (Italy).lsd ├── Disney Tarzan (Spain).lsd ├── Disney's 102 Dalmatians - Puppies to the Rescue (Europe) (Fr,De,Es,It,Nl).lsd ├── Disney's 102 Dalmatians - Puppies to the Rescue (Europe) (Rev 1).lsd ├── Disney's 102 Dalmatians - Puppies to the Rescue (Scandinavia) (Sv,No,Da).lsd ├── Disney's Aventura Interactiva - Mulan (Spain).lsd ├── Disney's Mulan - Story Studio (Europe).lsd ├── Disney's Tarzan (Europe).lsd ├── Disney's Tarzan (Netherlands).lsd ├── Disney's Verhalenstudio - Mulan (Netherlands).lsd ├── Disneyn Tarzan (Finland).lsd ├── Disneys Interaktive Abenteuer - Mulan (Germany).lsd ├── Disneys Tarzan (Denmark).lsd ├── Disneys Tarzan (Germany).lsd ├── Disneys Tarzan (Sweden).lsd ├── EA Sports Superbike 2000 (Europe) (En,Fr,De,Es,It,Sv).lsd ├── Eagle One - Harrier Attack (Europe) (En,Fr,De,Es,It).lsd ├── Esto Es Futbol (Spain).lsd ├── F.A. Premier League Football Manager 2001, The (Europe).lsd ├── F1 2000 (Europe) (En,Es,Sv,Da,Fi).lsd ├── F1 2000 (Europe) (En,Fr,De,Nl).lsd ├── F1 2000 (Italy).lsd ├── Final Fantasy IX (Europe) (Disc 1).lsd ├── Final Fantasy IX (Europe) (Disc 2).lsd ├── Final Fantasy IX (Europe) (Disc 3).lsd ├── Final Fantasy IX (Europe) (Disc 4).lsd ├── Final Fantasy IX (France) (Disc 1).lsd ├── Final Fantasy IX (France) (Disc 2).lsd ├── Final Fantasy IX (France) (Disc 3).lsd ├── Final Fantasy IX (France) (Disc 4).lsd ├── Final Fantasy IX (Germany) (Disc 1).lsd ├── Final Fantasy IX (Germany) (Disc 2).lsd ├── Final Fantasy IX (Germany) (Disc 3).lsd ├── Final Fantasy IX (Germany) (Disc 4).lsd ├── Final Fantasy IX (Italy) (Disc 1).lsd ├── Final Fantasy IX (Italy) (Disc 2).lsd ├── Final Fantasy IX (Italy) (Disc 3).lsd ├── Final Fantasy IX (Italy) (Disc 4).lsd ├── Final Fantasy IX (Spain) (Disc 1).lsd ├── Final Fantasy IX (Spain) (Disc 2).lsd ├── Final Fantasy IX (Spain) (Disc 3).lsd ├── Final Fantasy IX (Spain) (Disc 4).lsd ├── Final Fantasy VIII (Europe, Australia) (Disc 1).lsd ├── Final Fantasy VIII (Europe, Australia) (Disc 2).lsd ├── Final Fantasy VIII (Europe, Australia) (Disc 3).lsd ├── Final Fantasy VIII (Europe, Australia) (Disc 4).lsd ├── Final Fantasy VIII (France) (Disc 1).lsd ├── Final Fantasy VIII (France) (Disc 2).lsd ├── Final Fantasy VIII (France) (Disc 3).lsd ├── Final Fantasy VIII (France) (Disc 4).lsd ├── Final Fantasy VIII (Germany) (Disc 1).lsd ├── Final Fantasy VIII (Germany) (Disc 2).lsd ├── Final Fantasy VIII (Germany) (Disc 3).lsd ├── Final Fantasy VIII (Germany) (Disc 4).lsd ├── Final Fantasy VIII (Italy) (Disc 1).lsd ├── Final Fantasy VIII (Italy) (Disc 2).lsd ├── Final Fantasy VIII (Italy) (Disc 3).lsd ├── Final Fantasy VIII (Italy) (Disc 4).lsd ├── Final Fantasy VIII (Spain) (Disc 1).lsd ├── Final Fantasy VIII (Spain) (Disc 2).lsd ├── Final Fantasy VIII (Spain) (Disc 3).lsd ├── Final Fantasy VIII (Spain) (Disc 4).lsd ├── Football Manager Campionato 2001 (Italy).lsd ├── Football Manager Campionato 2002 (Italy).lsd ├── Formula One '99 (Europe) (En,Fr,De,It) (Beta).lsd ├── Formula One 99 (Europe) (En,Es,Fi).lsd ├── Formula One 99 (Europe) (En,Fr,De,It).lsd ├── Frontschweine (Germany).lsd ├── Fussball Live (Germany).lsd ├── Fussball Manager 2001 (Germany).lsd ├── Galerians (Europe) (Disc 1).lsd ├── Galerians (Europe) (Disc 2).lsd ├── Galerians (Europe) (Disc 3).lsd ├── Galerians (France) (Disc 1).lsd ├── Galerians (France) (Disc 2).lsd ├── Galerians (France) (Disc 3).lsd ├── Galerians (Germany) (Disc 1).lsd ├── Galerians (Germany) (Disc 2).lsd ├── Galerians (Germany) (Disc 3).lsd ├── Gekido - Urban Fighters (Europe) (En,Fr,De,Es,It).lsd ├── Hogs of War (Europe).lsd ├── Hogs of War - Nati per Soffritto (Italy).lsd ├── Italian Job, The (Europe) (Fr,De,Es).lsd ├── Italian Job, The (Europe).lsd ├── Italian Job, The (Italy).lsd ├── Jackie Chan Stuntmaster (Europe).lsd ├── LMA Manager 2001 (Europe) (Beta).lsd ├── LMA Manager 2001 (Europe).lsd ├── LMA Manager 2002 (Europe).lsd ├── Le Mans 24 Hours (Europe) (En,Fr,De,Es,It,Pt).lsd ├── Legacy of Kain - Soul Reaver (Europe).lsd ├── Legacy of Kain - Soul Reaver (France).lsd ├── Legacy of Kain - Soul Reaver (Germany).lsd ├── Legacy of Kain - Soul Reaver (Italy).lsd ├── Legacy of Kain - Soul Reaver (Spain).lsd ├── Lucky Luke - Western Fever (Europe) (En,Fr,De,Es,It,Nl).lsd ├── Manager de Liga (Spain) (Beta).lsd ├── Manager de Liga 2001 (Spain).lsd ├── Manager de Liga 2002 (Spain).lsd ├── Marranos en Guerra (Spain).lsd ├── MediEvil (Europe).lsd ├── MediEvil (France).lsd ├── MediEvil (Germany).lsd ├── MediEvil (Italy).lsd ├── MediEvil (Spain).lsd ├── MediEvil 2 (Europe) (En,Fr,De).lsd ├── MediEvil 2 (Europe) (Es,It,Pt).lsd ├── MediEvil 2 (Russia).lsd ├── Men in Black - The Series - Crashdown (Europe).lsd ├── Men in Black - The Series - Crashdown (France).lsd ├── Men in Black - The Series - Crashdown (Germany).lsd ├── Men in Black - The Series - Crashdown (Italy).lsd ├── Men in Black - The Series - Crashdown (Spain).lsd ├── Michelin Rally Masters - Race of Champions (Europe) (En,De,Sv).lsd ├── Michelin Rally Masters - Race of Champions (Europe) (Fr,Es,It).lsd ├── Mike Tyson Boxing (Europe) (En,Fr,De,Es,It).lsd ├── Mission - Impossible (Europe) (En,Fr,De,Es,It).lsd ├── MoHo (Europe) (En,Fr,De,Es,It).lsd ├── Monde des Bleus, Le - Le Jeu Officiel de l'Equipe de France (France).lsd ├── N-Gen Racing (Europe) (En,Fr,De,Es,It).lsd ├── Need for Speed - Porsche 2000 (Europe) (En,De,Sv).lsd ├── Need for Speed - Porsche 2000 (Europe) (Fr,Es,It).lsd ├── PGA European Tour Golf (Europe) (En,De).lsd ├── PGA European Tour Golf (Europe) (Fr,Es,It) (Alt).lsd ├── PGA European Tour Golf (Europe) (Fr,Es,It).lsd ├── Parasite Eve II (Europe) (Disc 1).lsd ├── Parasite Eve II (Europe) (Disc 2).lsd ├── Parasite Eve II (France) (Disc 1).lsd ├── Parasite Eve II (France) (Disc 2).lsd ├── Parasite Eve II (Germany) (Disc 1).lsd ├── Parasite Eve II (Germany) (Disc 2).lsd ├── Parasite Eve II (Italy) (Disc 1).lsd ├── Parasite Eve II (Italy) (Disc 2).lsd ├── Parasite Eve II (Spain) (Disc 1).lsd ├── Parasite Eve II (Spain) (Disc 2).lsd ├── Premier Manager 2000 (Europe).lsd ├── Prince Naseem Boxing (Europe) (En,Fr,De,Es,It).lsd ├── RC Revenge (Europe) (En,Fr,De,Es).lsd ├── Radikal Bikers (Europe) (En,Fr,De,Es,It).lsd ├── Resident Evil 3 - Nemesis (Europe).lsd ├── Resident Evil 3 - Nemesis (France).lsd ├── Resident Evil 3 - Nemesis (Germany).lsd ├── Resident Evil 3 - Nemesis (Ireland).lsd ├── Resident Evil 3 - Nemesis (Italy).lsd ├── Resident Evil 3 - Nemesis (Spain).lsd ├── Roger Lemerre - La Selection des Champions (France).lsd ├── Roger Lemerre - La Selection des Champions 2002 (France).lsd ├── Ronaldo V-Football (Europe) (De,Es,It,Pt).lsd ├── Ronaldo V-Football (Europe) (En,Fr,Nl,Sv).lsd ├── SaGa Frontier 2 (Europe).lsd ├── SaGa Frontier 2 (France).lsd ├── SaGa Frontier 2 (Germany).lsd ├── SnoCross Championship Racing (Europe) (En,Fr,De,Es,It).lsd ├── Space Debris (Europe).lsd ├── Space Debris (France).lsd ├── Space Debris (Germany) (Beta).lsd ├── Space Debris (Germany).lsd ├── Space Debris (Italy).lsd ├── Space Debris (Spain).lsd ├── Speed Freaks (Europe).lsd ├── Spyro - Year of the Dragon (Europe) (En,Fr,De,Es,It) (Rev 1).lsd ├── Spyro - Year of the Dragon (Europe) (En,Fr,De,Es,It).lsd ├── Spyro 2 - Gateway to Glimmer (Europe) (En,Fr,De,Es,It).lsd ├── Sydney 2000 (Australia).lsd ├── Sydney 2000 (Europe).lsd ├── Sydney 2000 (France).lsd ├── Sydney 2000 (Germany).lsd ├── Sydney 2000 (Italy).lsd ├── Sydney 2000 (Spain).lsd ├── TOCA World Touring Cars (Europe) (En,Fr,De).lsd ├── TOCA World Touring Cars (Europe) (Es,It).lsd ├── TechnoMage - De Terugkeer der Eeuwigheid (Netherlands).lsd ├── TechnoMage - Die Rueckkehr der Ewigkeit (Germany).lsd ├── TechnoMage - En Quete de L'Eternite (France).lsd ├── TechnoMage - Return of Eternity (Europe).lsd ├── TechnoMage - Ritorno all'Eternita (Italy).lsd ├── Technomage - El Retorno de la Eternidad (Spain).lsd ├── Theme Park World (Europe) (En,Fr,De,Es,It,Nl,Sv).lsd ├── This Is Football (Europe) (Fr,Nl).lsd ├── This Is Football (Europe).lsd ├── This Is Football (Italy).lsd ├── This Is Soccer (Australia).lsd ├── UEFA Euro 2000 (Europe).lsd ├── UEFA Euro 2000 (France).lsd ├── UEFA Euro 2000 (Germany).lsd ├── UEFA Euro 2000 (Italy).lsd ├── UEFA Euro 2000 (Spain).lsd ├── UEFA Striker (Europe) (En,Fr,De,Es,It,Nl).lsd ├── Urban Chaos (Europe) (En,Es,It).lsd ├── Urban Chaos (France).lsd ├── Urban Chaos (Germany).lsd ├── V-Rally - Championship Edition 2 (Europe) (En,Fr,De).lsd ├── Vagrant Story (Europe).lsd ├── Vagrant Story (France).lsd ├── Vagrant Story (Germany).lsd ├── Walt Disney World Quest - Magical Racing Tour (Europe) (En,Fr,De,Es,It,Nl,Sv,No,Da).lsd └── Wip3out (Europe) (En,Fr,De,Es,It).lsd ├── README.md ├── SINGLETRACK.bat ├── functions.bmx └── sbitools.bmx /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /CRC16.bmx: -------------------------------------------------------------------------------- 1 | 'Ported code from Mednafen 2 | 3 | Global CRC16_tab:Int[] = [$0000, $1021, $2042, $3063, $4084, $50a5, $60c6, $70e7, 4 | $8108, $9129, $a14a, $b16b, $c18c, $d1ad, $e1ce, $f1ef, 5 | $1231, $0210, $3273, $2252, $52b5, $4294, $72f7, $62d6, 6 | $9339, $8318, $b37b, $a35a, $d3bd, $c39c, $f3ff, $e3de, 7 | $2462, $3443, $0420, $1401, $64e6, $74c7, $44a4, $5485, 8 | $a56a, $b54b, $8528, $9509, $e5ee, $f5cf, $c5ac, $d58d, 9 | $3653, $2672, $1611, $0630, $76d7, $66f6, $5695, $46b4, 10 | $b75b, $a77a, $9719, $8738, $f7df, $e7fe, $d79d, $c7bc, 11 | $48c4, $58e5, $6886, $78a7, $0840, $1861, $2802, $3823, 12 | $c9cc, $d9ed, $e98e, $f9af, $8948, $9969, $a90a, $b92b, 13 | $5af5, $4ad4, $7ab7, $6a96, $1a71, $0a50, $3a33, $2a12, 14 | $dbfd, $cbdc, $fbbf, $eb9e, $9b79, $8b58, $bb3b, $ab1a, 15 | $6ca6, $7c87, $4ce4, $5cc5, $2c22, $3c03, $0c60, $1c41, 16 | $edae, $fd8f, $cdec, $ddcd, $ad2a, $bd0b, $8d68, $9d49, 17 | $7e97, $6eb6, $5ed5, $4ef4, $3e13, $2e32, $1e51, $0e70, 18 | $ff9f, $efbe, $dfdd, $cffc, $bf1b, $af3a, $9f59, $8f78, 19 | $9188, $81a9, $b1ca, $a1eb, $d10c, $c12d, $f14e, $e16f, 20 | $1080, $00a1, $30c2, $20e3, $5004, $4025, $7046, $6067, 21 | $83b9, $9398, $a3fb, $b3da, $c33d, $d31c, $e37f, $f35e, 22 | $02b1, $1290, $22f3, $32d2, $4235, $5214, $6277, $7256, 23 | $b5ea, $a5cb, $95a8, $8589, $f56e, $e54f, $d52c, $c50d, 24 | $34e2, $24c3, $14a0, $0481, $7466, $6447, $5424, $4405, 25 | $a7db, $b7fa, $8799, $97b8, $e75f, $f77e, $c71d, $d73c, 26 | $26d3, $36f2, $0691, $16b0, $6657, $7676, $4615, $5634, 27 | $d94c, $c96d, $f90e, $e92f, $99c8, $89e9, $b98a, $a9ab, 28 | $5844, $4865, $7806, $6827, $18c0, $08e1, $3882, $28a3, 29 | $cb7d, $db5c, $eb3f, $fb1e, $8bf9, $9bd8, $abbb, $bb9a, 30 | $4a75, $5a54, $6a37, $7a16, $0af1, $1ad0, $2ab3, $3a92, 31 | $fd2e, $ed0f, $dd6c, $cd4d, $bdaa, $ad8b, $9de8, $8dc9, 32 | $7c26, $6c07, $5c64, $4c45, $3ca2, $2c83, $1ce0, $0cc1, 33 | $ef1f, $ff3e, $cf5d, $df7c, $af9b, $bfba, $8fd9, $9ff8, 34 | $6e17, $7e36, $4e55, $5e74, $2e93, $3eb2, $0ed1, $1ef0] 35 | 36 | Function CRC16:Short(Array:Byte[]) 37 | Local cksum:Short 38 | For Local i = 0 To Len(Array) - 1 39 | cksum:Short = CRC16_tab[(cksum:Short Shr 8) ~ Array[i]] ~ (cksum Shl 8) 40 | Next 41 | Return ~cksum:Short 42 | End Function -------------------------------------------------------------------------------- /CUE2CCD.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | %~d0 3 | cd "%~dp0" 4 | sbitools -cue2ccd %1 5 | pause 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to -------------------------------------------------------------------------------- /LSD Patches/Actua Ice Hockey 2 (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Actua Ice Hockey 2 (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Anstoss - Premier Manager (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Anstoss - Premier Manager (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Ape Escape (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Ape Escape (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Ape Escape (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Ape Escape (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Ape Escape (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Ape Escape (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Ape Escape (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Ape Escape (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Ape Escape - La Invasion de los Monos (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Ape Escape - La Invasion de los Monos (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Asterix - Mega Madness (Europe) (En,Fr,De,Es,It,Nl).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Asterix - Mega Madness (Europe) (En,Fr,De,Es,It,Nl).lsd -------------------------------------------------------------------------------- /LSD Patches/BDFL Manager 2001 (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/BDFL Manager 2001 (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/BDFL Manager 2002 (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/BDFL Manager 2002 (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Barbie - Aventure Equestre (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Barbie - Aventure Equestre (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Barbie - Race & Ride (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Barbie - Race & Ride (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Barbie - Race & Ride (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Barbie - Race & Ride (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Barbie - Race & Ride (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Barbie - Race & Ride (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Barbie - Race & Ride (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Barbie - Race & Ride (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Barbie - Sports Extreme (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Barbie - Sports Extreme (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Barbie - Super Sport (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Barbie - Super Sport (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Barbie - Super Sports (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Barbie - Super Sports (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Barbie - Super Sports (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Barbie - Super Sports (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Barbie - Super Sports (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Barbie - Super Sports (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl) (EDC).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl) (EDC).lsd -------------------------------------------------------------------------------- /LSD Patches/CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl).lsd -------------------------------------------------------------------------------- /LSD Patches/Canal+ Premier Manager (Europe) (Fr,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Canal+ Premier Manager (Europe) (Fr,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Cochons de Guerre, Les (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Cochons de Guerre, Les (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Crash Bash (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Crash Bash (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Dino Crisis (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Dino Crisis (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Dino Crisis (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Dino Crisis (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Dino Crisis (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Dino Crisis (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Dino Crisis (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Dino Crisis (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Dino Crisis (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Dino Crisis (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney Fais Ton Histoire! Mulan (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney Fais Ton Histoire! Mulan (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney Libro Animato Creativo - Mulan (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney Libro Animato Creativo - Mulan (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney Tarzan (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney Tarzan (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney Tarzan (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney Tarzan (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney Tarzan (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney Tarzan (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney's 102 Dalmatians - Puppies to the Rescue (Europe) (Fr,De,Es,It,Nl).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney's 102 Dalmatians - Puppies to the Rescue (Europe) (Fr,De,Es,It,Nl).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney's 102 Dalmatians - Puppies to the Rescue (Europe) (Rev 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney's 102 Dalmatians - Puppies to the Rescue (Europe) (Rev 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney's 102 Dalmatians - Puppies to the Rescue (Scandinavia) (Sv,No,Da).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney's 102 Dalmatians - Puppies to the Rescue (Scandinavia) (Sv,No,Da).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney's Aventura Interactiva - Mulan (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney's Aventura Interactiva - Mulan (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney's Mulan - Story Studio (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney's Mulan - Story Studio (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney's Tarzan (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney's Tarzan (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney's Tarzan (Netherlands).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney's Tarzan (Netherlands).lsd -------------------------------------------------------------------------------- /LSD Patches/Disney's Verhalenstudio - Mulan (Netherlands).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disney's Verhalenstudio - Mulan (Netherlands).lsd -------------------------------------------------------------------------------- /LSD Patches/Disneyn Tarzan (Finland).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disneyn Tarzan (Finland).lsd -------------------------------------------------------------------------------- /LSD Patches/Disneys Interaktive Abenteuer - Mulan (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disneys Interaktive Abenteuer - Mulan (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Disneys Tarzan (Denmark).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disneys Tarzan (Denmark).lsd -------------------------------------------------------------------------------- /LSD Patches/Disneys Tarzan (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disneys Tarzan (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Disneys Tarzan (Sweden).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Disneys Tarzan (Sweden).lsd -------------------------------------------------------------------------------- /LSD Patches/EA Sports Superbike 2000 (Europe) (En,Fr,De,Es,It,Sv).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/EA Sports Superbike 2000 (Europe) (En,Fr,De,Es,It,Sv).lsd -------------------------------------------------------------------------------- /LSD Patches/Eagle One - Harrier Attack (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Eagle One - Harrier Attack (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Esto Es Futbol (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Esto Es Futbol (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/F.A. Premier League Football Manager 2001, The (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/F.A. Premier League Football Manager 2001, The (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/F1 2000 (Europe) (En,Es,Sv,Da,Fi).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/F1 2000 (Europe) (En,Es,Sv,Da,Fi).lsd -------------------------------------------------------------------------------- /LSD Patches/F1 2000 (Europe) (En,Fr,De,Nl).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/F1 2000 (Europe) (En,Fr,De,Nl).lsd -------------------------------------------------------------------------------- /LSD Patches/F1 2000 (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/F1 2000 (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Europe) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Europe) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Europe) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Europe) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Europe) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Europe) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Europe) (Disc 4).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Europe) (Disc 4).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (France) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (France) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (France) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (France) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (France) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (France) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (France) (Disc 4).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (France) (Disc 4).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Germany) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Germany) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Germany) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Germany) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Germany) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Germany) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Germany) (Disc 4).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Germany) (Disc 4).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Italy) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Italy) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Italy) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Italy) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Italy) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Italy) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Italy) (Disc 4).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Italy) (Disc 4).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Spain) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Spain) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Spain) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Spain) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Spain) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Spain) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy IX (Spain) (Disc 4).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy IX (Spain) (Disc 4).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Europe, Australia) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Europe, Australia) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Europe, Australia) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Europe, Australia) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Europe, Australia) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Europe, Australia) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Europe, Australia) (Disc 4).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Europe, Australia) (Disc 4).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (France) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (France) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (France) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (France) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (France) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (France) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (France) (Disc 4).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (France) (Disc 4).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Germany) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Germany) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Germany) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Germany) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Germany) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Germany) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Germany) (Disc 4).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Germany) (Disc 4).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Italy) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Italy) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Italy) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Italy) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Italy) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Italy) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Italy) (Disc 4).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Italy) (Disc 4).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Spain) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Spain) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Spain) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Spain) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Spain) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Spain) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Final Fantasy VIII (Spain) (Disc 4).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Final Fantasy VIII (Spain) (Disc 4).lsd -------------------------------------------------------------------------------- /LSD Patches/Football Manager Campionato 2001 (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Football Manager Campionato 2001 (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Football Manager Campionato 2002 (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Football Manager Campionato 2002 (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Formula One '99 (Europe) (En,Fr,De,It) (Beta).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Formula One '99 (Europe) (En,Fr,De,It) (Beta).lsd -------------------------------------------------------------------------------- /LSD Patches/Formula One 99 (Europe) (En,Es,Fi).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Formula One 99 (Europe) (En,Es,Fi).lsd -------------------------------------------------------------------------------- /LSD Patches/Formula One 99 (Europe) (En,Fr,De,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Formula One 99 (Europe) (En,Fr,De,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Frontschweine (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Frontschweine (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Fussball Live (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Fussball Live (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Fussball Manager 2001 (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Fussball Manager 2001 (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Galerians (Europe) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Galerians (Europe) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Galerians (Europe) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Galerians (Europe) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Galerians (Europe) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Galerians (Europe) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Galerians (France) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Galerians (France) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Galerians (France) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Galerians (France) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Galerians (France) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Galerians (France) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Galerians (Germany) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Galerians (Germany) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Galerians (Germany) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Galerians (Germany) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Galerians (Germany) (Disc 3).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Galerians (Germany) (Disc 3).lsd -------------------------------------------------------------------------------- /LSD Patches/Gekido - Urban Fighters (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Gekido - Urban Fighters (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Hogs of War (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Hogs of War (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Hogs of War - Nati per Soffritto (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Hogs of War - Nati per Soffritto (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Italian Job, The (Europe) (Fr,De,Es).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Italian Job, The (Europe) (Fr,De,Es).lsd -------------------------------------------------------------------------------- /LSD Patches/Italian Job, The (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Italian Job, The (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Italian Job, The (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Italian Job, The (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Jackie Chan Stuntmaster (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Jackie Chan Stuntmaster (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/LMA Manager 2001 (Europe) (Beta).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/LMA Manager 2001 (Europe) (Beta).lsd -------------------------------------------------------------------------------- /LSD Patches/LMA Manager 2001 (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/LMA Manager 2001 (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/LMA Manager 2002 (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/LMA Manager 2002 (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Le Mans 24 Hours (Europe) (En,Fr,De,Es,It,Pt).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Le Mans 24 Hours (Europe) (En,Fr,De,Es,It,Pt).lsd -------------------------------------------------------------------------------- /LSD Patches/Legacy of Kain - Soul Reaver (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Legacy of Kain - Soul Reaver (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Legacy of Kain - Soul Reaver (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Legacy of Kain - Soul Reaver (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Legacy of Kain - Soul Reaver (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Legacy of Kain - Soul Reaver (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Legacy of Kain - Soul Reaver (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Legacy of Kain - Soul Reaver (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Legacy of Kain - Soul Reaver (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Legacy of Kain - Soul Reaver (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Lucky Luke - Western Fever (Europe) (En,Fr,De,Es,It,Nl).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Lucky Luke - Western Fever (Europe) (En,Fr,De,Es,It,Nl).lsd -------------------------------------------------------------------------------- /LSD Patches/Manager de Liga (Spain) (Beta).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Manager de Liga (Spain) (Beta).lsd -------------------------------------------------------------------------------- /LSD Patches/Manager de Liga 2001 (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Manager de Liga 2001 (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Manager de Liga 2002 (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Manager de Liga 2002 (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Marranos en Guerra (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Marranos en Guerra (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/MediEvil (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/MediEvil (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/MediEvil (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/MediEvil (France).lsd -------------------------------------------------------------------------------- /LSD Patches/MediEvil (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/MediEvil (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/MediEvil (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/MediEvil (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/MediEvil (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/MediEvil (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/MediEvil 2 (Europe) (En,Fr,De).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/MediEvil 2 (Europe) (En,Fr,De).lsd -------------------------------------------------------------------------------- /LSD Patches/MediEvil 2 (Europe) (Es,It,Pt).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/MediEvil 2 (Europe) (Es,It,Pt).lsd -------------------------------------------------------------------------------- /LSD Patches/MediEvil 2 (Russia).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/MediEvil 2 (Russia).lsd -------------------------------------------------------------------------------- /LSD Patches/Men in Black - The Series - Crashdown (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Men in Black - The Series - Crashdown (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Men in Black - The Series - Crashdown (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Men in Black - The Series - Crashdown (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Men in Black - The Series - Crashdown (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Men in Black - The Series - Crashdown (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Men in Black - The Series - Crashdown (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Men in Black - The Series - Crashdown (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Men in Black - The Series - Crashdown (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Men in Black - The Series - Crashdown (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Michelin Rally Masters - Race of Champions (Europe) (En,De,Sv).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Michelin Rally Masters - Race of Champions (Europe) (En,De,Sv).lsd -------------------------------------------------------------------------------- /LSD Patches/Michelin Rally Masters - Race of Champions (Europe) (Fr,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Michelin Rally Masters - Race of Champions (Europe) (Fr,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Mike Tyson Boxing (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Mike Tyson Boxing (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Mission - Impossible (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Mission - Impossible (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/MoHo (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/MoHo (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Monde des Bleus, Le - Le Jeu Officiel de l'Equipe de France (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Monde des Bleus, Le - Le Jeu Officiel de l'Equipe de France (France).lsd -------------------------------------------------------------------------------- /LSD Patches/N-Gen Racing (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/N-Gen Racing (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Need for Speed - Porsche 2000 (Europe) (En,De,Sv).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Need for Speed - Porsche 2000 (Europe) (En,De,Sv).lsd -------------------------------------------------------------------------------- /LSD Patches/Need for Speed - Porsche 2000 (Europe) (Fr,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Need for Speed - Porsche 2000 (Europe) (Fr,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/PGA European Tour Golf (Europe) (En,De).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/PGA European Tour Golf (Europe) (En,De).lsd -------------------------------------------------------------------------------- /LSD Patches/PGA European Tour Golf (Europe) (Fr,Es,It) (Alt).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/PGA European Tour Golf (Europe) (Fr,Es,It) (Alt).lsd -------------------------------------------------------------------------------- /LSD Patches/PGA European Tour Golf (Europe) (Fr,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/PGA European Tour Golf (Europe) (Fr,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Parasite Eve II (Europe) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Parasite Eve II (Europe) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Parasite Eve II (Europe) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Parasite Eve II (Europe) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Parasite Eve II (France) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Parasite Eve II (France) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Parasite Eve II (France) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Parasite Eve II (France) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Parasite Eve II (Germany) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Parasite Eve II (Germany) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Parasite Eve II (Germany) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Parasite Eve II (Germany) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Parasite Eve II (Italy) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Parasite Eve II (Italy) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Parasite Eve II (Italy) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Parasite Eve II (Italy) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Parasite Eve II (Spain) (Disc 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Parasite Eve II (Spain) (Disc 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Parasite Eve II (Spain) (Disc 2).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Parasite Eve II (Spain) (Disc 2).lsd -------------------------------------------------------------------------------- /LSD Patches/Premier Manager 2000 (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Premier Manager 2000 (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Prince Naseem Boxing (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Prince Naseem Boxing (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/RC Revenge (Europe) (En,Fr,De,Es).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/RC Revenge (Europe) (En,Fr,De,Es).lsd -------------------------------------------------------------------------------- /LSD Patches/Radikal Bikers (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Radikal Bikers (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Resident Evil 3 - Nemesis (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Resident Evil 3 - Nemesis (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Resident Evil 3 - Nemesis (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Resident Evil 3 - Nemesis (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Resident Evil 3 - Nemesis (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Resident Evil 3 - Nemesis (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Resident Evil 3 - Nemesis (Ireland).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Resident Evil 3 - Nemesis (Ireland).lsd -------------------------------------------------------------------------------- /LSD Patches/Resident Evil 3 - Nemesis (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Resident Evil 3 - Nemesis (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Resident Evil 3 - Nemesis (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Resident Evil 3 - Nemesis (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Roger Lemerre - La Selection des Champions (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Roger Lemerre - La Selection des Champions (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Roger Lemerre - La Selection des Champions 2002 (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Roger Lemerre - La Selection des Champions 2002 (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Ronaldo V-Football (Europe) (De,Es,It,Pt).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Ronaldo V-Football (Europe) (De,Es,It,Pt).lsd -------------------------------------------------------------------------------- /LSD Patches/Ronaldo V-Football (Europe) (En,Fr,Nl,Sv).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Ronaldo V-Football (Europe) (En,Fr,Nl,Sv).lsd -------------------------------------------------------------------------------- /LSD Patches/SaGa Frontier 2 (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/SaGa Frontier 2 (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/SaGa Frontier 2 (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/SaGa Frontier 2 (France).lsd -------------------------------------------------------------------------------- /LSD Patches/SaGa Frontier 2 (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/SaGa Frontier 2 (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/SnoCross Championship Racing (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/SnoCross Championship Racing (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Space Debris (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Space Debris (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Space Debris (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Space Debris (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Space Debris (Germany) (Beta).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Space Debris (Germany) (Beta).lsd -------------------------------------------------------------------------------- /LSD Patches/Space Debris (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Space Debris (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Space Debris (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Space Debris (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Space Debris (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Space Debris (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Speed Freaks (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Speed Freaks (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Spyro - Year of the Dragon (Europe) (En,Fr,De,Es,It) (Rev 1).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Spyro - Year of the Dragon (Europe) (En,Fr,De,Es,It) (Rev 1).lsd -------------------------------------------------------------------------------- /LSD Patches/Spyro - Year of the Dragon (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Spyro - Year of the Dragon (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Spyro 2 - Gateway to Glimmer (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Spyro 2 - Gateway to Glimmer (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Sydney 2000 (Australia).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Sydney 2000 (Australia).lsd -------------------------------------------------------------------------------- /LSD Patches/Sydney 2000 (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Sydney 2000 (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Sydney 2000 (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Sydney 2000 (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Sydney 2000 (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Sydney 2000 (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Sydney 2000 (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Sydney 2000 (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Sydney 2000 (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Sydney 2000 (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/TOCA World Touring Cars (Europe) (En,Fr,De).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/TOCA World Touring Cars (Europe) (En,Fr,De).lsd -------------------------------------------------------------------------------- /LSD Patches/TOCA World Touring Cars (Europe) (Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/TOCA World Touring Cars (Europe) (Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/TechnoMage - De Terugkeer der Eeuwigheid (Netherlands).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/TechnoMage - De Terugkeer der Eeuwigheid (Netherlands).lsd -------------------------------------------------------------------------------- /LSD Patches/TechnoMage - Die Rueckkehr der Ewigkeit (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/TechnoMage - Die Rueckkehr der Ewigkeit (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/TechnoMage - En Quete de L'Eternite (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/TechnoMage - En Quete de L'Eternite (France).lsd -------------------------------------------------------------------------------- /LSD Patches/TechnoMage - Return of Eternity (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/TechnoMage - Return of Eternity (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/TechnoMage - Ritorno all'Eternita (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/TechnoMage - Ritorno all'Eternita (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/Technomage - El Retorno de la Eternidad (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Technomage - El Retorno de la Eternidad (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/Theme Park World (Europe) (En,Fr,De,Es,It,Nl,Sv).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Theme Park World (Europe) (En,Fr,De,Es,It,Nl,Sv).lsd -------------------------------------------------------------------------------- /LSD Patches/This Is Football (Europe) (Fr,Nl).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/This Is Football (Europe) (Fr,Nl).lsd -------------------------------------------------------------------------------- /LSD Patches/This Is Football (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/This Is Football (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/This Is Football (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/This Is Football (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/This Is Soccer (Australia).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/This Is Soccer (Australia).lsd -------------------------------------------------------------------------------- /LSD Patches/UEFA Euro 2000 (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/UEFA Euro 2000 (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/UEFA Euro 2000 (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/UEFA Euro 2000 (France).lsd -------------------------------------------------------------------------------- /LSD Patches/UEFA Euro 2000 (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/UEFA Euro 2000 (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/UEFA Euro 2000 (Italy).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/UEFA Euro 2000 (Italy).lsd -------------------------------------------------------------------------------- /LSD Patches/UEFA Euro 2000 (Spain).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/UEFA Euro 2000 (Spain).lsd -------------------------------------------------------------------------------- /LSD Patches/UEFA Striker (Europe) (En,Fr,De,Es,It,Nl).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/UEFA Striker (Europe) (En,Fr,De,Es,It,Nl).lsd -------------------------------------------------------------------------------- /LSD Patches/Urban Chaos (Europe) (En,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Urban Chaos (Europe) (En,Es,It).lsd -------------------------------------------------------------------------------- /LSD Patches/Urban Chaos (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Urban Chaos (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Urban Chaos (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Urban Chaos (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/V-Rally - Championship Edition 2 (Europe) (En,Fr,De).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/V-Rally - Championship Edition 2 (Europe) (En,Fr,De).lsd -------------------------------------------------------------------------------- /LSD Patches/Vagrant Story (Europe).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Vagrant Story (Europe).lsd -------------------------------------------------------------------------------- /LSD Patches/Vagrant Story (France).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Vagrant Story (France).lsd -------------------------------------------------------------------------------- /LSD Patches/Vagrant Story (Germany).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Vagrant Story (Germany).lsd -------------------------------------------------------------------------------- /LSD Patches/Walt Disney World Quest - Magical Racing Tour (Europe) (En,Fr,De,Es,It,Nl,Sv,No,Da).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Walt Disney World Quest - Magical Racing Tour (Europe) (En,Fr,De,Es,It,Nl,Sv,No,Da).lsd -------------------------------------------------------------------------------- /LSD Patches/Wip3out (Europe) (En,Fr,De,Es,It).lsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kippykip/SBITools/21d63c955efd568fe1560c1345ac723fa4b8ab92/LSD Patches/Wip3out (Europe) (En,Fr,De,Es,It).lsd -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | # SBITools 5 | SBITools v0.3.2 - http://kippykip.com 6 | 7 | **Description:** 8 | This is a small set of conversion tools written in BlitzMax to reconstruct .SUB files using .SBI/.LSD files, and can even convert a full BIN/CUE/SBI emulator setup into a IMG/CCD/SUB setup which can be put into popular CD Burning programs such as CloneCD. 9 | This way, LibCrypt protected games dumped in other formats can still be burned as 1:1 copies on a real Sony PlayStation console again with the LibCrypt changes fully intact. NTSC versions of the same games don't use LibCrypt and may only have early modchip detection depending on the title. 10 | **These tools are ONLY intended for PlayStation disc images, there's no telling how these tools would react to standard Mode 1 PC disc images.** 11 | 12 | **Requirements:** 13 | psxt001z, to be in the same directory as SBITools 14 | It can be downloaded from: http://redump.org/download/psxt001z-0.21b1.7z 15 | Source Code: https://github.com/Dremora/psxt001z 16 | It's pre-included in the "Releases" section for SBITools 17 | https://github.com/Kippykip/SBITools/releases 18 | 19 | **Arguments:** 20 | 21 | >SBITools.exe -cue2ccd cuefile.cue 22 | 23 | >SBITools.exe -lsd2sub cuefile.cue subchannel.lsd 24 | 25 | >SBITools.exe -lsd2sbi subchannel.lsd 26 | 27 | >SBITools.exe -sbi2sub cuefile.cue subchannel.sbi 28 | 29 | >SBITools.exe -sbi2lsd subchannel.sbi 30 | 31 | >SBITools.exe -singletrack cuefile 32 | 33 | 34 | **Argument Definitions:** 35 | 36 | 37 | 38 | -cue2ccd: Converts a 'BIN/CUE/SBI|LSD' setup into a 'IMG/CCD/CUE/SUB' setup. 39 | This makes burning LibCrypt games easily possible with software such 40 | as CloneCD. SBI/LSD files are loaded from the same directory as the .CUE 41 | file under the same name. 42 | -lsd2sub: Creates a patched .SUB subchannel with a .LSD file. 43 | -lsd2sbi: Converts a .SBI subchannel patch to a .LSD subchannel patch. 44 | -sbi2sub: Creates a patched .SUB subchannel with a .SBI file. 45 | -sbi2lsd: Converts a .SBI subchannel patch to a .LSD subchannel patch. 46 | NOTE: This cannot perfectly reconstruct the missing CRC16 bytes! 47 | -singletrack: Converts a seperate track BIN/CUE setup into a single track BIN/CUE setup. 48 | 49 | **Notes:** 50 | .SBI files do not actually contain the **CRC16** needed for some LibCrypt games, however since SBITools v0.2.1, the conversion functions recreate a CRC16 the same way **Mednafen** does by making a false CRC16 hash with "bitwise exclusive or", as LibCrypt only checks if it's the wrong hash in order to start the game. 51 | Every LibCrypt game I own that I've tested now works fine with SBITool's SBI functions. 52 | 53 | While this is enough to start a LibCrypt game, if you're a purist like me and want the original CRC16 bytes anyway, definitely go for .LSD files instead. They're the superior format (and I'm not sure why they weren't the standard instead of .SBI) 54 | They can be found on http://redump.org/disc/DISCID#/lsd 55 | I've bundled them all on the [releases page](https://github.com/Kippykip/SBITools/releases) and in the repository. 56 | 57 | Remember to ***ALWAYS*** test games converted with the **-cue2ccd** function on an emulator before you burn! I personally recommend using BizHawk (which uses Mednafen) and opening the converted game from the .CCD file. 58 | Do ***NOT*** run the game in BizHawk from a .CUE file! The LibCrypt copy protection will kick in if you do that! 59 | 60 | **Upcoming** 61 | - Add a -**cdd2cue** function to reverse the process, just in case. 62 | - Maybe even remove the need for psxt001z too as it's only used for 63 | generating blank .SUB subchannels, although it is a very useful tool to have in combination with SBITools. 64 | 65 | **Version History** 66 | 67 | Version 0.3.2 68 | - Modified CUESheet code to detect and fix bad AUDIO indexes. As some ReDump.org PSX dumps contain a single index for some audio tracks. 69 | Version 0.3.1 70 | - Fixed a bug where CD images would not be copied if it was in the same directory as SBITools. 71 | - CUE2CCD.BAT and SINGLETRACK.BAT drag and drop now works if the image was dragged from another drive letter. 72 | - Rewrote exporting code to better support images that have multiple MODE2/2352 tracks in a single image. 73 | - Made it more clear when .SBI/.LSD patches were not found, showing the path to expect. 74 | Version 0.3 75 | - BIN/CUE setups with seperated tracks are now fully supported! 76 | - Renamed -SBI & -LSD to -SBI2SUB & -LSD2SUB 77 | - Added -singletrack conversion command, -CUE2CCD uses this automatically if necessary. 78 | - Added drag and drop .BAT files for -SINGLETRACK and -CUE2CCD, since they will be used the most. 79 | - Added -SBI2LSD and -LSD2SBI conversion functions 80 | - -SBI2SUB & -LSD2SUB no longer export in subfolders (since it only exports 1 file anyways.) 81 | - SBITools now includes all known LibCrypt LSD patches in the "LSD Patches" directory 82 | Version 0.2.1 83 | - SBI Patching functions were modified to now work with every game. 84 | - Cleaned up a tiny bit of code in CRC16.bmx 85 | Version 0.2 86 | - .SUB patch functions now also add the CD Audio track data to the subchannel. 87 | Although this change now requires you to specify a .CUE file instead of a Binary file for -SBI and -LSD functions. SUB files are now exported to the \SUB directory 88 | in these functions too. 89 | - The -SBI function now recreates some of the CRC16 bytes required for handful of games, 90 | although still not 100% compatible. 91 | - Command line functions are no longer case sensitive. (oops) 92 | - Added -cue2ccd, which allows you to do a full burnable conversion. 93 | Version 0.1 94 | - Initial release 95 | ## SBI File Format Specifications 96 | 97 | *HEADER* 98 | [4 BYTES] SUB\0 99 | 100 | *CONTINUOUS* 101 | [1 BYTE] Minutes (In HEX -> Text) 102 | [1 BYTE] Seconds (In HEX -> Text) 103 | [1 BYTE] Frames (In HEX -> Text) 104 | [1 BYTE] Dummy byte, always a 01 (according to psxt001z source) 105 | [10 BYTES] QSUB Data 106 | 107 | Example: 108 | S B I NUL MIN SEC FRA DUM [ QSUB ] 109 | 53 42 49 00 03 08 05 01 41 01 01 07 06 05 00 23 08 05 110 | I'm unsure why they didn't include the modified CRC16 bytes in SBI, as it's extremely important. 111 | ## LSD File Format Specifications 112 | 113 | *CONTINUOUS* 114 | [1 BYTE] Minutes (In HEX -> Text) 115 | [1 BYTE] Seconds (In HEX -> Text) 116 | [1 BYTE] Frames (In HEX -> Text) 117 | [10 BYTES] QSUB Data 118 | [2 BYTES] CRC-16 119 | 120 | Example: 121 | MIN SEC FRA [ QSUB ] [CRC16] 122 | 03 08 05 41 01 01 07 06 05 00 23 08 05 38 39 123 | 124 | ## LibCrypt failed check, causes and effects 125 | Here's a list of what LibCrypt'ed games will do to the player when it realises the SubChannel data isn't correct. Obviously these aren't all the LibCrypted games (check on Redump.org for that), these are just games I've personally tested and some I've been told about. 126 | Look out for these effects when testing games modified with SBITools on an accurate PSX emulator such as BizHawk. *(Run from .CCD)* 127 | 128 | **Ape Escape (PAL)**\ 129 | Main menu navigation will be completely disabled, making you unable to start the game. 130 | 131 | **Crash Team Racing (PAL)**\ 132 | Game will hang once at the end of the loading screen (for the level itself). 133 | 134 | **Legacy of Kain: Soul Reaver (PAL)**\ 135 | The game will hang when you're introduced with the combat tutorial when the camera pans to show the enemies. 136 | 137 | **Lucky Luke: Western Fever (PAL)**\ 138 | The game stops when you get to the Mexican guy blocking the bridge, he just won't move from there, ever. Even when you complete the quest. 139 | The game also has anti-cracking protection where the game will block a path with a fallen tree + maybe more. 140 | 141 | **MediEvil (PAL)**\ 142 | Will have a disc error icon upon loading The Hilltop Mausoleum. Interesting to note this was actually the *FIRST* game to use LibCrypt. 143 | 144 | **MediEvil 2 (PAL)**\ 145 | Will also have the same disc error icon as above, except upon loading Kensington. 146 | 147 | **PGA European Tour Golf (PAL)**\ 148 | In the third hole of the first tournament or by selecting some holes, the game will get stuck in "demo" mode (and will not you play anything). 149 | 150 | **Resident Evil 3: Nemesis (PAL)**\ 151 | Will hang at the "Game contains violence and gore" screen. 152 | 153 | **Spyro 3: Year of the Dragon (PAL)**\ 154 | Interesting case for this one, the game will eventually randomly delete eggs, reset progress with unlocked characters, remove sheep in boss battles, change the language and even tell you off for playing a "hacked copy" + more. 155 | Interesting to note that the game also detected early LibCrypt knockout PPF patches back when the game was first released as it had checksum checks throughout the game, which caused the same effects above. 156 | The US platinum release only has anti mod detection (not libcrypt) and will do the above effects if it realises it's been modified. The original US release appears to not have any protection. 157 | 158 | **This is Football (PAL)**\ 159 | Hangs on the loading screen going ingame. 160 | 161 | **V-Rally: Championship Edition 2 (PAL)**\ 162 | The game will endlessly load on the heartbeat loading screen (with no disc activity). 163 | 164 | **Wip3out (PAL)**\ 165 | The game will freeze when passing the finish line. 166 | 167 | ## PAL Games known with LibCrypt Protection 168 | Actua Ice Hockey 2 (Europe) 169 | Anstoss - Premier Manager (Germany) 170 | Ape Escape (Europe) 171 | Ape Escape (France) 172 | Ape Escape (Germany) 173 | Ape Escape (Italy) 174 | Ape Escape - La Invasion de los Monos (Spain) 175 | Asterix - Mega Madness (Europe) (En,Fr,De,Es,It,Nl) 176 | Barbie - Aventure Equestre (France) 177 | Barbie - Race & Ride (Europe) 178 | Barbie - Race & Ride (Germany) 179 | Barbie - Race & Ride (Italy) 180 | Barbie - Race & Ride (Spain) 181 | Barbie - Sports Extreme (France) 182 | Barbie - Super Sport (Germany) 183 | Barbie - Super Sports (Europe) 184 | Barbie - Super Sports (Italy) 185 | Barbie - Super Sports (Spain) 186 | BDFL Manager 2001 (Germany) 187 | BDFL Manager 2002 (Germany) 188 | Canal+ Premier Manager (Europe) (Fr,Es,It) 189 | Crash Bash (Europe) (En,Fr,De,Es,It) 190 | CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl) (EDC) 191 | CTR - Crash Team Racing (Europe) (En,Fr,De,Es,It,Nl) (No EDC) 192 | Dino Crisis (Europe) 193 | Dino Crisis (France) 194 | Dino Crisis (Germany) 195 | Dino Crisis (Italy) 196 | Dino Crisis (Spain) 197 | Disney Fais Ton Histoire! - Mulan (France) 198 | Disney Libro Animato Creativo - Mulan (Italy) 199 | Disney Tarzan (France) 200 | Disney Tarzan (Spain) 201 | Disney's 102 Dalmatians - Puppies to the Rescue (Europe) (Fr,De,Es,It,Nl) 202 | Disney's 102 Dalmatians - Puppies to the Rescue (Europe) 203 | Disney's Aventura Interactiva - Mulan (Spain) 204 | Disney's Story Studio - Mulan (Europe) 205 | Disney's Tarzan (Europe) 206 | Disney's Tarzan (Netherlands) 207 | Disney's Tarzan (Sweden) 208 | Disney's Verhalenstudio - Mulan (Netherlands) 209 | Disneys Interaktive Abenteuer - Mulan (Germany) 210 | Disneys Tarzan (Germany) 211 | Disneys Tarzan (Italy) 212 | EA Sports Superbike 2000 (Europe) (En,Fr,De,Es,It,Sv) 213 | Eagle One - Harrier Attack (Europe) (En,Fr,De,Es,It) 214 | Esto es Futbol (Spain) 215 | F.A. Premier League Football Manager 2001, The (Europe) 216 | F1 2000 (Europe) (En,Fr,De,Nl) 217 | F1 2000 (Italy) 218 | Final Fantasy IX (Europe) (Disc 1) 219 | Final Fantasy IX (Europe) (Disc 2) 220 | Final Fantasy IX (Europe) (Disc 3) 221 | Final Fantasy IX (Europe) (Disc 4) 222 | Final Fantasy IX (France) (Disc 1) 223 | Final Fantasy IX (France) (Disc 2) 224 | Final Fantasy IX (France) (Disc 3) 225 | Final Fantasy IX (France) (Disc 4) 226 | Final Fantasy IX (Germany) (Disc 1) 227 | Final Fantasy IX (Germany) (Disc 2) 228 | Final Fantasy IX (Germany) (Disc 3) 229 | Final Fantasy IX (Germany) (Disc 4) 230 | Final Fantasy IX (Italy) (Disc 1) 231 | Final Fantasy IX (Italy) (Disc 2) 232 | Final Fantasy IX (Italy) (Disc 3) 233 | Final Fantasy IX (Italy) (Disc 4) 234 | Final Fantasy IX (Spain) (Disc 1) 235 | Final Fantasy IX (Spain) (Disc 2) 236 | Final Fantasy IX (Spain) (Disc 3) 237 | Final Fantasy IX (Spain) (Disc 4) 238 | Final Fantasy VIII (Europe, Australia) (Disc 1) 239 | Final Fantasy VIII (Europe, Australia) (Disc 2) 240 | Final Fantasy VIII (Europe, Australia) (Disc 3) 241 | Final Fantasy VIII (Europe, Australia) (Disc 4) 242 | Final Fantasy VIII (France) (Disc 1) 243 | Final Fantasy VIII (France) (Disc 2) 244 | Final Fantasy VIII (France) (Disc 3) 245 | Final Fantasy VIII (France) (Disc 4) 246 | Final Fantasy VIII (Germany) (Disc 1) 247 | Final Fantasy VIII (Germany) (Disc 2) 248 | Final Fantasy VIII (Germany) (Disc 3) 249 | Final Fantasy VIII (Germany) (Disc 4) 250 | Final Fantasy VIII (Italy) (Disc 1) 251 | Final Fantasy VIII (Italy) (Disc 2) 252 | Final Fantasy VIII (Italy) (Disc 3) 253 | Final Fantasy VIII (Italy) (Disc 4) 254 | Final Fantasy VIII (Spain) (Disc 1) 255 | Final Fantasy VIII (Spain) (Disc 2) 256 | Final Fantasy VIII (Spain) (Disc 3) 257 | Final Fantasy VIII (Spain) (Disc 4) 258 | Football Manager Campionato 2001 (Italy) 259 | Formula One 99 (Europe) (En,Es,Fi) 260 | Formula One 99 (Europe) (En,Fr,De,It) 261 | Frontschweine (Germany) 262 | Fussball Live (Germany) 263 | Fussball Manager 2001 (Germany) 264 | Galerians (Europe) (Disc 1) 265 | Galerians (Europe) (Disc 2) 266 | Galerians (Europe) (Disc 3) 267 | Galerians (France) (Disc 1) 268 | Galerians (France) (Disc 2) 269 | Galerians (France) (Disc 3) 270 | Galerians (Germany) (Disc 1) 271 | Galerians (Germany) (Disc 2) 272 | Galerians (Germany) (Disc 3) 273 | Gekido - Urban Fighters (Europe) (En,Fr,De,Es,It) 274 | Hogs of War (Europe) 275 | Italian Job, The (Europe) 276 | Italian Job, The (Germany) 277 | Jackie Chan Stuntmaster (Europe) 278 | Le Mans 24 Hours (Europe) (En,Fr,De,Es,It,Pt) 279 | Legacy of Kain - Soul Reaver (Europe) 280 | Legacy of Kain - Soul Reaver (France) 281 | Legacy of Kain - Soul Reaver (Germany) 282 | Legacy of Kain - Soul Reaver (Italy) 283 | Legacy of Kain - Soul Reaver (Spain) 284 | Les Cochons de Guerre (France) 285 | LMA Manager 2001 (Europe) 286 | LMA Manager 2002 (Europe) 287 | Lucky Luke - Western Fever (Europe) (En,Fr,De,Es,It,Nl) 288 | MediEvil (Europe) 289 | MediEvil (France) 290 | MediEvil (Germany) 291 | MediEvil (Italy) 292 | MediEvil (Spain) 293 | MediEvil 2 (Europe) (En,Fr,De) 294 | MediEvil 2 (Europe) (Es,It,Pt) 295 | MediEvil 2 (Russia) 296 | Men in Black - The Series - Crashdown (Europe) 297 | Men in Black - The Series - Crashdown (France) 298 | Men in Black - The Series - Crashdown (Germany) 299 | Men in Black - The Series - Crashdown (Italy) 300 | Men in Black - The Series - Crashdown (Spain) 301 | Michelin Rally Masters - Race of Champions (Europe) (En,De,Sv) 302 | Michelin Rally Masters - Race of Champions (Europe) (Fr,Es,It) 303 | Mike Tyson Boxing (Europe) (En,Fr,De,Es,It) 304 | Mission - Impossible (Europe) (En,Fr,De,Es,It) 305 | MoHo (Europe) (En,Fr,De,Es,It) 306 | Monde des Bleus, Le - Le jeu officiel de l'equipe de France (France) 307 | N-Gen Racing (Europe) (En,Fr,De,Es,It) 308 | Need for Speed - Porsche 2000 (Europe) (En,De,Sv) 309 | Need for Speed - Porsche 2000 (Europe) (Fr,Es,It) 310 | Parasite Eve II (Europe) (Disc 1) 311 | Parasite Eve II (Europe) (Disc 2) 312 | Parasite Eve II (France) (Disc 1) 313 | Parasite Eve II (France) (Disc 2) 314 | Parasite Eve II (Germany) (Disc 1) 315 | Parasite Eve II (Germany) (Disc 2) 316 | Parasite Eve II (Italy) (Disc 1) 317 | Parasite Eve II (Italy) (Disc 2) 318 | Parasite Eve II (Spain) (Disc 1) 319 | Parasite Eve II (Spain) (Disc 2) 320 | PGA European Tour Golf (Europe) (En,De) 321 | Premier Manager 2000 (Europe) 322 | Prince Naseem Boxing (Europe) (En,Fr,De,Es,It) 323 | Radikal Bikers (Europe) (En,Fr,De,Es,It) 324 | RC Revenge (Europe) (En,Fr,De,Es) 325 | Resident Evil 3 - Nemesis (Europe) 326 | Resident Evil 3 - Nemesis (France) 327 | Resident Evil 3 - Nemesis (Germany) 328 | Resident Evil 3 - Nemesis (Ireland) 329 | Resident Evil 3 - Nemesis (Italy) 330 | Resident Evil 3 - Nemesis (Spain) 331 | Ronaldo V-Football (Europe) (De,Es,It,Pt) 332 | Ronaldo V-Football (Europe) (En,Fr,Nl,Sv) 333 | SaGa Frontier 2 (Europe) 334 | SaGa Frontier 2 (France) 335 | SaGa Frontier 2 (Germany) 336 | SnoCross Championship Racing (Europe) (En,Fr,De,Es,It) 337 | Space Debris (Europe) 338 | Space Debris (France) 339 | Space Debris (Germany) 340 | Space Debris (Italy) 341 | Speed Freaks (Europe) 342 | Spyro - Year of the Dragon (Europe) (En,Fr,De,Es,It) (v1.0) 343 | Spyro - Year of the Dragon (Europe) (En,Fr,De,Es,It) (v1.1) 344 | Spyro 2 - Gateway to Glimmer (Europe) (En,Fr,De,Es,It) 345 | Sydney 2000 (Europe) 346 | Sydney 2000 (France) 347 | Sydney 2000 (Germany) 348 | Sydney 2000 (Spain) 349 | TechnoMage - De Terugkeer der Eeuwigheid (Netherlands) 350 | TechnoMage - Die Rueckkehr der Ewigkeit (Germany) 351 | TechnoMage - En Quete de L'Eternite (France) 352 | TechnoMage - Return of Eternity (Europe) 353 | Theme Park World (Europe) (En,Fr,De,Es,It,Nl,Sv) 354 | This Is Football (Europe) (Fr,Nl) 355 | This Is Football (Europe) 356 | This Is Football (Italy) 357 | TOCA World Touring Cars (Europe) (En,Fr,De) 358 | TOCA World Touring Cars (Europe) (Es,It) 359 | UEFA Euro 2000 (Europe) 360 | UEFA Euro 2000 (France) 361 | UEFA Euro 2000 (Germany) 362 | UEFA Euro 2000 (Italy) 363 | UEFA Striker (Europe) (En,Fr,De,Es,It,Nl) 364 | Urban Chaos (Europe) (En,Es,It) 365 | Urban Chaos (Germany) 366 | V-Rally - Championship Edition 2 (Europe) (En,Fr,De) 367 | Vagrant Story (Europe) 368 | Vagrant Story (France) 369 | Vagrant Story (Germany) 370 | Walt Disney World Quest - Magical Racing Tour (Europe) (En,Fr,De,Es,It,Nl,Sv,No,Da) 371 | Wip3out (Europe) (En,Fr,De,Es,It) 372 | 373 | ## CloneCD PSX LibCrypt Ripping guide 374 | In order to rip LibCrypt protected drives, you need a CD drive that's able to read subchannels in the first place. 375 | 376 | Step 1: Open up CloneCD and click on **Read to Image file**\ 377 | ![Read to Image file](https://i.imgur.com/eOXsaej.png) 378 | 379 | Step 2: Click on the drive you want to use to rip.\ 380 | ![Copy from CD-Reader to Image file](https://i.imgur.com/lSy8l50.png)\ 381 | 382 | Step 3: Right click in an empty space and select **New** 383 | Rename it to anything you like, I just name mine **PS1**.\ 384 | ![New Profile](https://i.imgur.com/d3exNev.png) 385 | 386 | Step 4: Right click on your new profile and select **Edit** 387 | Make sure **Read SubChannel Data from Data Tracks** is checked, and uncheck **Regenerate Data Sectors.**\ 388 | ![Data Read Settings](https://i.imgur.com/LUlJQ6m.png)\ 389 | On the **Audio Read Settings** tab, change your **Audio Extraction Quality** is set to **Best (Slowest)** 390 | Optionally you can also set **Read Speed Audio** to something slow to ensure accuracy.\ 391 | ![Audio Read Settings](https://i.imgur.com/zTi8AMY.png)\ 392 | If you want to make sure you have a perfect rip, on the **Error Handling** tab, check **Abort on Read Error**. 393 | CloneCD will stop the rip if it finds any bad sectors (basically physical damage) on the disc. 394 | 395 | Step 5: Change the path to where you would like to save, and you can optionally tick **Create "Cue-Sheet".** 396 | I personally check this option so I can always easily hand convert a **.IMG/.CUE** setup into a more common **.BIN/.CUE** setup if I really need to. 397 | You can easily do so by renaming the **.IMG** extension to **.BIN** (identical format), then editing the **.CUE** file in a text editor to change the path to the newly renamed **.BIN** file.\ 398 | **Note! - It's a bad idea to do this to LibCrypt protected games, as a BIN/CUE setup cannot read .SUB subchannel files! Making any LibCrypt protected game trigger it's protection!**\ 399 | ![Select Image Path](https://i.imgur.com/4oit3v2.png) 400 | 401 | Step 6: Wait for it to finish ripping and if there's no bad sectors, you should have a working dump! 402 | You can test to see if your LibCrypt dump works by launching an accurate PlayStation emulator (I use **BizHawk**) and opening the **.CCD** file in the emulator.\ 403 | ![Opening the .CDD dump](https://i.imgur.com/7zxtpZB.png)\ 404 | Test whether the LibCrypt protection is triggered, if it isn't then **Congrats!** You have made a successful LibCrypt Dump!\ 405 | ![Resident Evil 3 Title Screen](https://i.imgur.com/BifjGHV.png) 406 | 407 | If you intentionally want to trigger the LibCrypt protection, you can do so by opening the **.CUE** file instead of the **.CCD** which is an easy way for testing.\ 408 | ![Opening the .CUE dump](https://i.imgur.com/0YB0LiF.png)\ 409 | ![LibCrypt Copy Protection in Action](https://i.imgur.com/avZdFAF.png) 410 | 411 | 412 | ## CloneCD PSX LibCrypt Burning guide 413 | To burn LibCrypt games successfully, you will need to have a CD burner that supports either **RAW-DAO-16** or **RAW-SAO-16**. You can check for so in Step 3. 414 | 415 | Step 1: Select **Write from ImageFile**\ 416 | ![Write from ImageFile](https://i.imgur.com/IoQv9VF.png) 417 | 418 | Step 2: Open the file via the **.CCD** file, and leave **Delete after a successful write** unchecked of course.\ 419 | ![Opening the .CCD file](https://i.imgur.com/bKtoXAc.png)\ 420 | **MAKE ABSOLUTELY SURE YOU *DO NOT BURN FROM A .CUE FILE!***\ 421 | **Doing so WILL trigger the LibCrypt copy protection! Only open it from the *.CCD* file!** 422 | Also make absolutely sure that there's a **.SUB** file under the same name and located in the same folder like so:\ 423 | ![SUB file](https://i.imgur.com/0AVNR7X.png)\ 424 | If there's no **.SUB**, or if you burn from the **.CUE** file then the LibCrypt copy protection will trigger and you'll burn a coaster! 425 | 426 | 427 | Step 3: Be sure to note what your CD Burner supports. Most nowadays support both **RAW-DAO** and **RAW-SAO**.\ 428 | ![RAW Modes](https://i.imgur.com/Rpt6jA0.png)\ 429 | To change it, right click on the CD drive you want to burn from, and click on **Settings ...**\ 430 | ![Drive Settings](https://i.imgur.com/afT7J8p.png)\ 431 | And depending what your drive supports above, select either **RAW DAO** or **RAW SAO**. If your drive supports both modes, then just use **RAW DAO**.\ 432 | ![Write Mode](https://i.imgur.com/8lLBCIQ.png)\ 433 | Whatever you do, do ***NOT*** select **RAW SAO+SUB** or plain **SAO**, it will trigger the LibCrypt protection and you'll burn a coaster instead! 434 | 435 | Step 4: Change the write speed as low as you can go, the Sony PlayStation reads at **2X** so it's a good idea to write at that speed. I usually burn at **4X** as it reads just fine. 436 | However most drives can only burn as slow as **16X** nowadays, for the most part this works just fine but definitely don't go above that. Otherwise the PlayStation will have trouble reading the disc and will skip on FMVs. 437 | 438 | Step 5: Create a new profile (or edit the existing PS1 profile if you followed the **CloneCD PSX LibCrypt Ripping guide**)\ 439 | ![Edit a profile](https://i.imgur.com/eJwQKoh.png) 440 | 441 | And be absolutely sure to check **Don't Repair SubChannel Data!** 442 | If you don't then CloneCD will ruin the LibCrypt SubChannel by repairing it which of course will result in the copy protection being triggered where you'll end up with a coaster. Sony's LibCrypt copy protection works by corrupting certain parts of the SubChannel in the first place, it checks whether they're modified or not, and if it isn't modified exactly, then it will trigger the protection.\ 443 | **TL;DR**: check this box.\ 444 | ![Don't repair SubChannel data](https://i.imgur.com/mZsNspu.png)\ 445 | Click **OK** in this menu and click **OK** on the main screen with this edited profile selected and it'll begin burning. 446 | 447 | Step 6: After the disc is burned, try it in a modded Sony PlayStation and hope for the best, cross fingers! 448 | If it works then **HOORAY!**\ 449 | ![A burned copy of MediEvil protected level running on a real Sony PlayStation](https://i.imgur.com/L6UaxTa.png) 450 | 451 | 452 | If it doesn't work, you can try changing between **RAW DAO** and **RAW SAO** (if your drive supports both), also be sure you followed all the above instructions exactly. If it *still* doesn't work, check in an emulator such as **BizHawk** to make sure the **.CCD/.SUB** setup you're burning even works in the first place. If the protection triggers in the emulator, then there's your problem.\ 453 | ![LibCrypt protection in action](https://i.imgur.com/v73KGvI.png)\ 454 | If that's not the problem and you're *still* burning coasters, then I'm sorry to say but your CD Burner is not burning the SubChannels exactly the same way they were ripped. You will have to try it on another CD burner. 455 | Based on personal experience, I find the **HP LightScribe** CD burners burn Sony PlayStation games really well. 456 | 457 | If you manage to get one of these, then you have a completely different problem.\ 458 | ![Anti-Modchip screen](https://i.imgur.com/wDFnDYN.png)\ 459 | In order to fix this, you will have to upgrade the modchip in your Sony PlayStation to one with **stealth capabilities**. 460 | 461 | The MultiMode 3 (MM3) is the best choice in my opinion, as it supports every PlayStation model out there ***EXCEPT*** the **PAL PSone Slim**. If you have one of those, you'll need a **ONEChip** instead. 462 | If you need a guide on how to wire and even make your own modchip, [I've got another git with modchip HEX files and diagrams](https://github.com/Kippykip/PSX-Modchip)\ 463 | Alternatively, there is a DIY open source modchip that uses an Arduino. The project is called [PSNee and is on github as well.](https://github.com/kalymos/PsNee) 464 | 465 | ## Additional Credits and Sources: 466 | **qnorsten**: For creating a script to grab all .LSD files from ReDump.org\ 467 | **LoStraniero91, krHACKen**: For explaining some LibCrypt cause and effects.\ 468 | **dizzzy**: For general assistance/important emulator advice.\ 469 | **themabus**: SBI Format and XOR information on a [forum thread.](http://forum.redump.org/post/17317/#p17317)\ 470 | **Mednafen**: Workaround for using SBI files without the original CRC16 bytes, and CRC16 function.\ 471 | **Dremora**: Explanation and whereabouts of .LSD files, creator of [psxt001z](https://github.com/Dremora/psxt001z/)\ 472 | *And everyone else at the ReDump team!*\ 473 | [PSX RAW-DAO/RAW-SAO Information](https://forum.redfox.bz/threads/ps1-psone-backups.25000/) 474 | 475 | ## Support: 476 | I really do hope you enjoy **SBITools** as much as I did making it! 477 | If you support the work I've put in, and want me to see more of these type of projects, you can support me with donations. I'd gladly appreciate it! ![OH BOI](https://kippykip.com/styles/sleek/xenforo/smilies/k_dance.gif) 478 | 479 | **KO-FI!!!**: 480 | **http://ko-fi.com/kippykip** 481 | 482 | **Patreon** 483 | **http://patreon.com/Kippykip** 484 | -------------------------------------------------------------------------------- /SINGLETRACK.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | %~d0 3 | cd "%~dp0" 4 | sbitools -singletrack %1 5 | pause 6 | -------------------------------------------------------------------------------- /functions.bmx: -------------------------------------------------------------------------------- 1 | 'PS1 Discs are stored in MODE2, meaning they have 2352 bytes per Sector. 2 | Function GetSectorsBySize(Size:Int) 3 | Return Size / 2352 4 | End Function 5 | 6 | 'Minutes, Seconds, Frames to Sector number 7 | Function MSFToSector:Int(Minutes:Int, Seconds:Int, Frames:Int) 8 | '75 frames in a second for CD Audio, for some reason. 9 | Local Calc:Int = Minutes * 60 * 75 + Seconds:Int * 75 + Frames:Int 10 | Return Calc 11 | End Function 12 | 13 | Function SectorToMSF:Int[] (Sector:Int) 14 | Local MSF:Int[3] 15 | Local Minutes:Int = (Sector / 60 / 75) 16 | Local Seconds:Int = ((Sector - Minutes * 60 * 75) / 75) 17 | Local Frames:Int = (Sector - Minutes * 60 * 75 - Seconds * 75) 18 | MSF:Int[0] = Minutes:Int 19 | MSF:Int[1] = Seconds:Int 20 | MSF:Int[2] = Frames:Int 21 | Return MSF 22 | End Function 23 | 24 | Function NumberToHexMSF:Byte(Number:Int) 25 | Local HexStr:String = "$000000" 26 | If(Number:Int <= 9) 27 | HexStr:String = HexStr:String + "0" + Number 28 | Else 29 | HexStr:String = HexStr:String + Number 30 | EndIf 31 | Return Byte(HexStr.ToInt()) 32 | End Function 33 | 34 | Function NumberToStrMSF:String(Number:Int) 35 | Local HexStr:String 36 | If(Number:Int <= 9) 37 | HexStr:String = HexStr:String + "0" + Number 38 | Else 39 | HexStr:String = HexStr:String + Number 40 | EndIf 41 | Return HexStr:String 42 | End Function 43 | 44 | 'Converts a Sector to a byte offset for a .SUB file 45 | Function SectorToSUBOffset:Int(Sector:Int) 46 | '.SUB files have 96 bytes in each sector, with a 12 byte FF'd header at the beginning. 47 | 'Subtracting 150 is for the 2 second lead-in they have, for whatever reason. 48 | 'http://forum.imgburn.com/index.php?/topic/2122-how-to-convert-mmssff-to-bytes/&do=findComment&comment=25842 49 | Return (Sector - 150) * 96 + 12 50 | End Function 51 | 52 | 'Patches a .SUB file with a SBI 53 | Function SBIToSub(SBIPath:String, SUB:TBank) 54 | Local SBIFile:TStream = ReadFile(SBIPath:String) 55 | 56 | 'Did the SUB file load? 57 | If(SUB:TBank) 58 | '4801107 = [SUB\0] header as an int 59 | If(SBIFile:TStream And ReadInt(SBIFile) = 4801107) 60 | While Not Eof(SBIFile:TStream) 61 | Local SBI_Minutes:Int 62 | Local SBI_Seconds:Int 63 | Local SBI_Frames:Int 64 | 65 | 'Next 3 bytes are the MSF. For some reason the true number is stored in raw HEX. 66 | 'Thankfully BMX can convert from HEX strings to numbers easily. 67 | SBI_Minutes:Int = Int(Hex(ReadByte(SBIFile:TStream))) 68 | SBI_Seconds:Int = Int(Hex(ReadByte(SBIFile:TStream))) 69 | SBI_Frames:Int = Int(Hex(ReadByte(SBIFile:TStream))) 70 | 71 | 'Convert that MSF to a Sector 72 | Local SectorMSF:Int = MSFToSector(SBI_Minutes:Int, SBI_Seconds:Int, SBI_Frames:Int) 73 | 'Get the offset that the SBI will replace in the SUB file 74 | Local ReplaceOffset:Int = SectorToSUBOffset(SectorMSF) 75 | 76 | 'Dummy byte, it will always be 01 (maybe, I was reading the psxt001z SRC afterall) 77 | 'If it's not, it must of misaligned somehow 78 | If(ReadByte(SBIFile:TStream) <> 1) 79 | RuntimeError("Odd contents in SBI file!") 80 | endif 81 | 82 | 'The next 10 bytes are the replacement QSUB bytes 83 | Local QSub:Byte[10] 84 | For Local i = 0 To 10 - 1 85 | 'Get the byte, and replace the destination part in the .SUB with the offsets above. 86 | Local Replacement:Byte = ReadByte(SBIFile:TStream) 87 | PokeByte(SUB, ReplaceOffset + i, Replacement) 88 | QSub[i] = Replacement 89 | Next 90 | Print "Replaced 10 byte QSUB at MSF: " + SBI_Minutes:Int + ":" + SBI_Seconds:Int + ":" + SBI_Frames:Int + " (sector: " + SectorMSF:Int + ") at offset: " + Hex(ReplaceOffset:Int) 91 | 92 | 'Old V0.2 notes, didn't work out as you can see. 93 | 'Now we have to recalculate the CRC16 if we want to make all the games fully work. 94 | 'Although stupidly, the modified CRC16 on LibCrypt games are not included in SBIs, and different LibCrypt games generate them differently 95 | 'Lets assume it needs recalculating, with a 0080 XOR, although some use 8001 but there's no way to easily check. Why did they make this a standard? 96 | 'Local SUB_CRC16:Short = CRC16(QSub) 97 | 'V0.2 code bits 98 | '0080 XOR is whatmost LibCrypt games use according to ReDump 99 | 'Local SUB_CRCA:Byte = (SUB_CRC16 + $0080) Shr 8 100 | 'Local SUB_CRCB:Byte = (SUB_CRC16 + $0080) - (SUB_CRCA Shl 8) 101 | 'Print "Added 2 byte LibCrypt CRC16 to QSUB with a value of: " + Right(Hex(SUB_CRC16:Short + $0080), 4) 102 | 103 | 'So according to the mednafen source, you just do a regular CRC16, then do a "bitwise exclusive or" to purposely make the CRC16 wrong... 104 | 'But then despite having the wrong CRC16 compared to the original LibCrypt CRC16 hash, the game will work. Ok? 105 | Local SUB_CRC16:Short = ~CRC16(QSub) 106 | Local SUB_CRCA:Byte = (SUB_CRC16) Shr 8 107 | Local SUB_CRCB:Byte = (SUB_CRC16) - (SUB_CRCA Shl 8) 108 | 'Have to do it this way as PokeShort will reverse to little endian or something 109 | PokeByte(SUB, ReplaceOffset:Int + 10, SUB_CRCA) 110 | PokeByte(SUB, ReplaceOffset:Int + 11, SUB_CRCB) 111 | Print "Added 2 byte LibCrypt CRC16 to QSUB with a value of: " + Right(Hex(SUB_CRC16:Short + $0080), 4) 112 | Wend 113 | 'Run the SUB audio tracks function 114 | GenSubCDDA(SUB) 115 | Print "Finished SBI -> SUB Patching!" 116 | Else 117 | RuntimeError("Not a valid SBI file.") 118 | EndIf 119 | Else 120 | RuntimeError("Not a valid SUB file.") 121 | EndIf 122 | End Function 123 | 124 | 'Patches a .SUB file with a LSD 125 | Function LSDToSub:TBank(LSDPath:String, SUB:TBank) 126 | Local LSDFile:TStream = ReadFile(LSDPath:String) 127 | 128 | 'Did the SUB file load? 129 | If(SUB:TBank) 130 | '4801107 = [SUB ] header 131 | If(LSDFile:TStream) 132 | While Not Eof(LSDFile:TStream) 133 | Local LSD_Minutes:Int 134 | Local LSD_Seconds:Int 135 | Local LSD_Frames:Int 136 | 137 | 'Next 3 bytes are the MSF. For some reason the true number is stored in raw HEX. 138 | 'Thankfully BMX can convert from HEX strings to numbers easily. 139 | LSD_Minutes:Int = Int(Hex(ReadByte(LSDFile:TStream))) 140 | LSD_Seconds:Int = Int(Hex(ReadByte(LSDFile:TStream))) 141 | LSD_Frames:Int = Int(Hex(ReadByte(LSDFile:TStream))) 142 | 143 | 'Convert that MSF to a Sector 144 | Local SectorMSF:Int = MSFToSector(LSD_Minutes:Int, LSD_Seconds:Int, LSD_Frames:Int) 145 | 'Get the offset that the LSD will replace in the SUB file 146 | Local ReplaceOffset:Int = SectorToSUBOffset(SectorMSF) 147 | 148 | 'The next 10 bytes are the replacement bytes 149 | For Local i = 0 To 12 - 1 150 | 'Get the byte, and replace the destination part in the .SUB with the offsets above. 151 | Local Replacement:Byte = ReadByte(LSDFile:TStream) 152 | PokeByte(SUB, ReplaceOffset:Int + i, Replacement:Byte) 153 | Next 154 | Print "Replaced 12 byte subchannel at MSF: " + LSD_Minutes:Int + ":" + LSD_Seconds:Int + ":" + LSD_Frames:Int + " (sector: " + SectorMSF:Int + ") at offset: " + Hex(ReplaceOffset:Int) 155 | Wend 156 | 'Run the SUB audio tracks function 157 | GenSubCDDA(SUB) 158 | Print "Finished LSD -> Patching!" 159 | Else 160 | RuntimeError("Not a valid LSD file.") 161 | EndIf 162 | Else 163 | RuntimeError("Not a valid SUB file.") 164 | EndIf 165 | End Function 166 | 167 | 'Generates SUB information about all the CD tracks 168 | Function GenSubCDDA(SUB:TBank) 169 | Local TotalTracks:Int = CUE.CountCDDA() 170 | If(TotalTracks > 0) 171 | Print "Adding CD Audio track data to subchannel" 172 | Local ReplaceOffset:Int 173 | 174 | 'We need to get the offset to start writing the leadin and tracks 175 | 'Although we gotta loop through our CUE list to find it 176 | For Local CueFile:CUE = EachIn CUE.List:TList 177 | If(CueFile.TrackType = "AUDIO") 178 | If(CueFile.Track = 2 And CueFile.Index = 1) 'We'll use index one so we can use SectorToSUBOffset 179 | ReplaceOffset:Int = SectorToSUBOffset(CueFile.Sector) 180 | EndIf 181 | EndIf 182 | Next 183 | 184 | 'Track 2 is also where the audio starts 185 | For Local CDDA_TrackID:Int = 2 To TotalTracks + 1 ' Have to add one so it does the final track (As TotalTracks doesn't count the data one) 186 | 'Start generating the reversal like 2 second lead-in part at the beginning of the CDDA audio soundtrack 187 | Print "Adding '2 second lead-in' for Track: " + CDDA_TrackID 188 | For Local i = 0 To 150 - 1 189 | Local Countdown:Int = 150 - i 190 | Local CountdownMSF:Int[] = SectorToMSF(Countdown) 191 | Local BinarySeconds:Byte = CountdownMSF[1] 192 | Local BinaryFrames:Byte = CountdownMSF[2] 193 | Local QSub:Byte[10] 194 | 195 | 'Change the QSUB header, XxxCD means countdown 196 | '[01] [TrackID] [00] [MinCD] [SecCD] [FraCD] [00] [Minutes] [Seconds] [Frame] [CRC16]-[CRC16] 197 | PokeByte(SUB, ReplaceOffset + (i * 96), 1) 198 | PokeByte(SUB, ReplaceOffset + (i * 96) + 1, NumberToHexMSF(CDDA_TrackID)) 'Track 199 | PokeByte(SUB, ReplaceOffset + (i * 96) + 2, 0) 200 | PokeByte(SUB, ReplaceOffset + (i * 96) + 3, 0) 'MinCD, Eh just put zero, the leadin will never have minutes 201 | PokeByte(SUB, ReplaceOffset + (i * 96) + 4, NumberToHexMSF(BinarySeconds)) 'SecCD, Seconds Countdown 202 | PokeByte(SUB, ReplaceOffset + (i * 96) + 5, NumberToHexMSF(BinaryFrames)) 'FraCD, Frames Countdown 203 | 204 | 'Fill the QSUB array and CRC16 it 205 | QSub[0] = PeekByte(SUB, ReplaceOffset + (i * 96)) 206 | QSub[1] = PeekByte(SUB, ReplaceOffset + (i * 96) + 1) 207 | QSub[2] = PeekByte(SUB, ReplaceOffset + (i * 96) + 2) 208 | QSub[3] = PeekByte(SUB, ReplaceOffset + (i * 96) + 3) 209 | QSub[4] = PeekByte(SUB, ReplaceOffset + (i * 96) + 4) 210 | QSub[5] = PeekByte(SUB, ReplaceOffset + (i * 96) + 5) 211 | QSub[6] = PeekByte(SUB, ReplaceOffset + (i * 96) + 6) 212 | QSub[7] = PeekByte(SUB, ReplaceOffset + (i * 96) + 7) 213 | QSub[8] = PeekByte(SUB, ReplaceOffset + (i * 96) + 8) 214 | QSub[9] = PeekByte(SUB, ReplaceOffset + (i * 96) + 9) 215 | 216 | Local SUB_CRC16:Short = CRC16(QSub) 217 | Local SUB_CRCA:Byte = SUB_CRC16 Shr 8 218 | Local SUB_CRCB:Byte = SUB_CRC16 - (SUB_CRCA Shl 8) 219 | 220 | PokeByte(SUB, ReplaceOffset + (i * 96) + 10, SUB_CRCA) 221 | PokeByte(SUB, ReplaceOffset + (i * 96) + 11, SUB_CRCB) 222 | Next 223 | 224 | 'Alright, lets add actual CD Audio track data to the subchanel 225 | ReplaceOffset = ReplaceOffset + (150 * 96) 'Start on the part after the leadin 226 | '[01] [TrackID] [01] [Minutes] [Seconds] [Frame] [00] [Minutes Index1/Unchanged] [Seconds Index1/Unchanged] [Frame Index1/Unchanged] [CRC16] 227 | 228 | Local TrackA:CUE 229 | Local TrackB:CUE 230 | Local QSub:Byte[10] 231 | Print "Adding timecode data for Track: " + CDDA_TrackID 232 | 233 | 'Lets get the important tracks, so we can calculate the size after 234 | For Local CueFile:CUE = EachIn CUE.List:TList 235 | If(CueFile.TrackType = "AUDIO") 236 | If(CueFile.Track = CDDA_TrackID:Int And CueFile.Index = 1) 'If it = CurrentTrack Index 1 237 | TrackA:CUE = CueFile:CUE 238 | ElseIf(CueFile.Track = CDDA_TrackID:Int + 1 And CueFile.Index = 0) 'If it = the one after the Current Track at Index 0 239 | TrackB:CUE = CueFile:CUE 240 | EndIf 241 | EndIf 242 | Next 243 | 244 | 'Check if we're on the last track, then we can get the sector difference 245 | Local SectorSize:Int 246 | If(CDDA_TrackID < TotalTracks + 1) 247 | SectorSize:Int = TrackB.Sector - TrackA.Sector 248 | Else 249 | SectorSize:Int = (BankSize(SUB) / 96) - TrackA.Sector 250 | EndIf 251 | 252 | For Local i = 0 To SectorSize - 1 253 | PokeByte(SUB, ReplaceOffset + (i * 96), 1) 'Just a 1 254 | PokeByte(SUB, ReplaceOffset + (i * 96) + 1, NumberToHexMSF(CDDA_TrackID)) 'Track ID 255 | PokeByte(SUB, ReplaceOffset + (i * 96) + 2, 1) 'Looks like after the reverse lead-in thing, this is now always a 1 256 | 257 | 'Alright lets write the MSF of the current sector 258 | Local MSF[] = SectorToMSF(i) 259 | 'Now write it! 260 | PokeByte(SUB, ReplaceOffset + (i * 96) + 3, NumberToHexMSF(MSF[0])) 'Minutes 261 | PokeByte(SUB, ReplaceOffset + (i * 96) + 4, NumberToHexMSF(MSF[1])) 'Seconds 262 | PokeByte(SUB, ReplaceOffset + (i * 96) + 5, NumberToHexMSF(MSF[2])) 'Frames 263 | 264 | 'Fill the QSub array and CRC16 it 265 | QSub[0] = PeekByte(SUB, ReplaceOffset + (i * 96)) 266 | QSub[1] = PeekByte(SUB, ReplaceOffset + (i * 96) + 1) 267 | QSub[2] = PeekByte(SUB, ReplaceOffset + (i * 96) + 2) 268 | QSub[3] = PeekByte(SUB, ReplaceOffset + (i * 96) + 3) 269 | QSub[4] = PeekByte(SUB, ReplaceOffset + (i * 96) + 4) 270 | QSub[5] = PeekByte(SUB, ReplaceOffset + (i * 96) + 5) 271 | QSub[6] = PeekByte(SUB, ReplaceOffset + (i * 96) + 6) 272 | QSub[7] = PeekByte(SUB, ReplaceOffset + (i * 96) + 7) 273 | QSub[8] = PeekByte(SUB, ReplaceOffset + (i * 96) + 8) 274 | QSub[9] = PeekByte(SUB, ReplaceOffset + (i * 96) + 9) 275 | 276 | Local SUB_CRC16:Short = CRC16(QSub) 277 | Local SUB_CRCA:Byte = SUB_CRC16 Shr 8 278 | Local SUB_CRCB:Byte = SUB_CRC16 - (SUB_CRCA Shl 8) 279 | 280 | PokeByte(SUB, ReplaceOffset + (i * 96) + 10, SUB_CRCA) 281 | PokeByte(SUB, ReplaceOffset + (i * 96) + 11, SUB_CRCB) 282 | Next 283 | 'Move the ReplaceOffset position 284 | ReplaceOffset = ReplaceOffset + (SectorSize * 96) 285 | Next 286 | Print "Finished adding CD Audio subchannel data!" 287 | EndIf 288 | End Function 289 | 290 | Function GenSub(FileName:String, Sectors:Int) 291 | 'For some reason BMX can't start psxt001z directly 292 | Print "Generating blank .SUB with psxt001z" 293 | If(FileType("psxt001z.exe") <> 1) Then RuntimeError("psxt001z.exe is missing! Please download it from GitHub") 294 | 'If the subchannel already exists, delete it. 295 | 'Psxt001z doesn't override it 296 | If(FileType(FileName:String)) Then DeleteFile(FileName:String) 297 | Local psxtoolz:TProcess = CreateProcess:TProcess("cmd.exe /c psxt001z --sub " + Chr(34) + FileName:String + Chr(34) + " " + Sectors:Int) 298 | 299 | While(ProcessStatus(psxtoolz:TProcess) = 1) 300 | Delay 1000 301 | Wend 302 | End Function 303 | 304 | 'Open a directory 305 | Function OpenDir(Directory:String) 306 | Local Explorer:TProcess = CreateProcess:TProcess("explorer.exe " + Chr(34) + Directory:String + Chr(34)) 307 | DetachProcess(Explorer) 308 | End Function 309 | 310 | 'Cue Type 311 | Type CUE 312 | Global List:TList = CreateList() 313 | Global BinaryFN:String 314 | Global BinPath:String 315 | Global IsMultiTrack:Byte = False 316 | Global FDRPath:String[] 317 | Global MultiSectorCount:Int = 0'Total sectors counted for multiple sector tracks 318 | Field Track:Int 319 | Field TrackType:String 320 | Field Index:Int 321 | Field TrackFN:String 322 | Field MSF:Int[3] 323 | Field Sector:Int 324 | 325 | 'Add a track index 326 | Function AddListing(Track:Int, TrackType:String, Index:Int, Minutes:Int, Seconds:Int, Frames:Int, FileName:String) 327 | Local CUETrack:CUE = New CUE 328 | CUETrack.Track = Track 329 | CUETrack.TrackType = TrackType 330 | CUETrack.Index = Index 331 | CUETrack.TrackFN = FileName 332 | CUETrack.Sector = MSFToSector(Minutes, Seconds, Frames) 333 | 334 | 'Alright, lets get the path of the CUE/Bin file(s) 335 | Local TrackPath:String 336 | For Local x = 0 To Len(CUE.FDRPath) - 2 'Take 1 so it doesn't overflow, take another 1 so get rid of the CUE filename in this path 337 | TrackPath = TrackPath + CUE.FDRPath[x] + "\" 338 | Next 339 | 340 | 'Honestly whoever made multitrack BIN/CUE's the ReDump standard are fr*cking frI*ks!!1 341 | If(CUE.IsMultiTrack) 342 | 'BIN file exists? 343 | If(FileType(TrackPath + FileName) <> 1) Then RuntimeError("BIN Track '" + TrackPath + FileName + "' is missing!") 344 | If(FileType(TrackPath + BinaryFN) <> 1) Then RuntimeError("BIN Track '" + TrackPath + BinaryFN + "' is missing!") 'Check for Track 1 345 | 346 | 'Start counting! 347 | If(Index = 0) 348 | CUETrack.Sector = MultiSectorCount 349 | ElseIf(Index = 1) 350 | CUETrack.Sector = MultiSectorCount + 150 '2 Second LeadIn on Index 1's 351 | 'Add the sector count of the next track 352 | MultiSectorCount = MultiSectorCount + GetSectorsBySize(Int(FileSize(TrackPath + FileName))) 353 | Else 'Umm, Index 3? uhhhh 354 | RuntimeError("Invalid Index in CUE!") 355 | EndIf 356 | 'Recalculate MSF 357 | CUETrack.MSF = SectorToMSF(CUETrack.Sector) 358 | Else 'Single track BIN 359 | CUETrack.MSF[0] = Minutes 360 | CUETrack.MSF[1] = Seconds 361 | CUETrack.MSF[2] = Frames 362 | 363 | 'Alrighty so because the IsMultiTrack function only changes when it sees more than 1 FILE parameter, we better count the sectors of Track 1! 364 | 'But if it can't find it, ignore it. We'll also add the sector count here 365 | if(FileType(TrackPath + BinaryFN) = 1) 366 | MultiSectorCount = GetSectorsBySize(Int(FileSize(TrackPath + BinaryFN))) 367 | EndIf 368 | EndIf 369 | ListAddLast(List:TList, CUETrack) 370 | EndFunction 371 | Function AddCue(CuePath:String) 372 | 'Open the file, fix the slashes 373 | CuePath = CuePath.Replace("/", "\") 374 | 'Set the path and read the CUE 375 | CUE.FDRPath = CuePath.Split("\") 376 | Local CueFile:TStream = ReadFile(CuePath:String) 377 | 'Did it load? 378 | If(CueFile) 379 | Local CurrentTrack:Int = 0 380 | Local CurrentTrackType:String 381 | Local CurrentTrackFN:String 382 | 383 | 'Barry: What? What is this...? 384 | 'Jill: What is it? 385 | 'Barry: A CUE! 386 | 'Barry: Jill, see if you can't find any other CUES, I'll be examining this... 387 | 'Barry: I hope this is not a BIN file! 388 | If(ReadByte(CueFile) = 0) 389 | RuntimeError("This doesn't seem to be a cue file!") 390 | Else 391 | SeekStream(CueFile, 0) 'Go back to the start. 392 | EndIf 393 | 394 | While Not(Eof(CueFile)) 395 | Local Line:String = Upper(ReadLine(CueFile)) 396 | 397 | 'Remove any spaces at the beginning 398 | While(Line.StartsWith(" ")) 399 | Line = Right(Line, Len(Line) - 1) 400 | Wend 401 | 402 | 'This is the header 403 | If(Line.StartsWith("FILE")) 404 | 'Is a standard single track BIN file 405 | If(BinaryFN = Null) 406 | Local Split:String[] = Line.Split(Chr(34)) 'Split the quotes 407 | BinaryFN = Split[1] 'Set the filename the CUE links to in our global 408 | CurrentTrackFN = Split[1] 'Add it to the array afterwards 409 | Else 'Oh ok so it's one of THOSE multi bin ones, nice. Lets fix it. 410 | Local Split:String[] = Line.Split(Chr(34)) 'Split the quotes 411 | CurrentTrackFN = Split[1] 'Add it to the array afterwards 412 | 'Oooh this is a seperated track image! 413 | If(IsMultiTrack = False) 414 | CUE.IsMultiTrack = True 415 | Print "Split Track CUE image detected! Merging..." 416 | EndIf 417 | EndIf 418 | ElseIf(Line.StartsWith("TRACK")) 419 | Local Split:String[] = Line.Replace(" ", " ").Split(" ") 'Split the spaces, get rid of most duplicate spaces if there are any 420 | 'Set the current track and track type for when the next loop happens 421 | CurrentTrack = Int(Split[1]) 422 | CurrentTrackType = Split[2] 423 | ElseIf(Line.StartsWith("INDEX")) 424 | Local Split:String[] = Line.Split(" ") 'Split the spaces 425 | Local MSF:String[] = Split[2].Split(":") 'Split the colons from the MSF XX:XX:XX 426 | 427 | 'QUICK HACK TO ADDRESS ISSUE #4 ON GITHUB 428 | 'Ok so is there an Index of 1, with 00 00 00 MSF? 429 | 'Hmm this COULD be a bad redump.org cuesheet. 430 | 'If there's a missing Index 00 then it's def bad, lets check for it 431 | If(CurrentTrackType = "AUDIO" And Int(Split[1]) = 1 And Int(MSF[0]) = 0 And Int(MSF[1]) = 0 And Int(MSF[2]) = 0) 432 | 'We'll default the exists flag to false, because the FOR loop won't do anything if it's not found 433 | Local Index0Exists:Byte = False 434 | For Local IndexFixCue:CUE = EachIn CUE.List:TList 435 | If(IndexFixCue.Index = 0 And IndexFixCue.Track = CurrentTrack And IndexFixCue.TrackType = CurrentTrackType) 436 | 'Ok there was an index of 00 beforehand for this track 437 | Index0Exists = True 438 | EndIf 439 | Next 440 | 441 | 'Hmmm, guess I was wrong and there's no leadin or something for this track? 442 | If(Index0Exists) 443 | AddListing(CurrentTrack, CurrentTrackType, Int(Split[1]), Int(MSF[0]), Int(MSF[1]), Int(MSF[2]), CurrentTrackFN) 444 | Else 'Ok confirmed, this is a bad cuesheet. Let's fix it ourselves 445 | Print "WARNING! Bad Index in CueSheet for TRACK '" + CurrentTrack + "'! Repairing..." 446 | Print "If it's a ReDump.org source, you should report the cuesheet!" 447 | AddListing(CurrentTrack, CurrentTrackType, 0, 0, 0, 0, CurrentTrackFN) 448 | AddListing(CurrentTrack, CurrentTrackType, 1, 0, 2, 0, CurrentTrackFN) 449 | EndIf 450 | Else 451 | AddListing(CurrentTrack, CurrentTrackType, Int(Split[1]), Int(MSF[0]), Int(MSF[1]), Int(MSF[2]), CurrentTrackFN) 452 | EndIf 453 | EndIf 454 | Wend 455 | 'Done using this file 456 | CloseFile(CueFile) 457 | Else 458 | RuntimeError(".CUE file doesn't exist!") 459 | EndIf 460 | End Function 461 | 'Counts all the tracks, excluding the data track. 462 | Function CountCDDA:Int(CountData:Byte = False) 463 | Local TrackCount:Int = 0 464 | For Local CueFile:CUE = EachIn CUE.List:TList 465 | If(CueFile.Index = 0) 466 | TrackCount:Int = TrackCount:Int + 1 467 | ElseIf(CountData) 468 | If(CueFile.Index = 1 And CueFile.TrackType = "MODE2/2352") 469 | TrackCount:Int = TrackCount:Int + 1 470 | EndIf 471 | EndIf 472 | Next 473 | Return TrackCount:Int 474 | End Function 475 | Function MergeImage(ExportPath:String) 476 | Local MergedImage:TStream = WriteFile(ExportPath) 477 | Local TrackNum = 1 478 | For Local CueFile:CUE = EachIn CUE.List:TList 479 | If(CueFile.Index = 1) 480 | 'Alright, lets get the path of the bin file(s) then 481 | Local TrackPath:String 482 | For Local x = 0 To Len(CUE.FDRPath) - 2 'Take 1 so it doesn't overflow, take another 1 so get rid of the CUE filename in this path 483 | TrackPath = TrackPath + CUE.FDRPath[x] + "\" 484 | Next 485 | 'Verification to check the track numbers are correct 486 | 'That way it doesn't stitch the .BINs in a wacky order! 487 | If(CueFile.Track = TrackNum) 488 | Print "Stitching '" + CueFile.TrackFN + "'." 489 | 'File doesn't exist? 490 | If(FileType(TrackPath + CueFile.TrackFN) <> 1) Then RuntimeError("BIN Track '" + TrackPath + CueFile.TrackFN + "' is missing!") 491 | 'If we got this far, then it exists 492 | Local ImageTrack:TStream = ReadFile(TrackPath + CueFile.TrackFN) 493 | If Not(ImageTrack) Then RuntimeError("Unknown read error!") 494 | 'Still made it? Alright good! Copy the data now! 495 | CopyStream(ImageTrack, MergedImage) 496 | 497 | Else 'Wait what? well uHHH just cycle through the whole thing until you find it 498 | For Local OrderedCueFile:CUE = EachIn CUE.List:TList 499 | If(OrderedCueFile.Index = 1 And OrderedCueFile.Track = TrackNum) 500 | Print "Warning! CUE sheet is out of order!" 501 | Print "Expected Track: " + TrackNum + ", got Track: " + CueFile.Track + " instead!" 502 | Print "Stitching '" + OrderedCueFile.TrackFN + "'." 503 | 504 | 'File doesn't exist? 505 | If(FileType(TrackPath + OrderedCueFile.TrackFN) <> 1) Then RuntimeError("BIN Track '" + TrackPath + OrderedCueFile.TrackFN + "' is missing!") 506 | 'If we got this far, then it exists 507 | Local ImageTrack:TStream = ReadFile(TrackPath + OrderedCueFile.TrackFN) 508 | If Not(ImageTrack) Then RuntimeError("Unknown read error!") 509 | 'Still made it? Alright good! Copy the data now! 510 | CopyStream(ImageTrack, MergedImage) 511 | EndIf 512 | Next 513 | EndIf 514 | 'Go to next track 515 | TrackNum = TrackNum + 1 516 | EndIf 517 | Next 518 | CloseFile(MergedImage) 519 | Print "Finished merging split track image!" 520 | End Function 521 | 522 | 'Lets get the path to the .BIN file, or .IMG, whatever using the CUE's BaseName + FDRPath array, or by any means possible. 523 | Function GetBinPath:String(FDRPath:String[]) 524 | 'This just gets the name of the cue. Say if it was "C:\CoolGame.cue", this would return "CoolGame" 525 | Local BaseName:String = Left(FDRPath[Len(FDRPath) - 1], Len(FDRPath[Len(FDRPath) - 1]) - 4) 526 | 527 | 'Sometimes in rare cases .CUE files contain the full path to the file, or maybe it could reside next to this very SBITools, lets check for that first 528 | 'Therefore does the Binary file exist with the exact path written in the cue? - Most likely not but lets check anyway 529 | If(FileType(CUE.BinaryFN) = 1) 530 | CUE.BinPath = "" 'Yes, make it no path then 531 | Else 'Nope it didn't, lets search it the proper way 532 | For Local i = 0 To Len(FDRPath:String[]) - 2 'Take 1 so it doesn't overflow, take another to remove the CUE filename for this string. 533 | CUE.BinPath:String = CUE.BinPath:String + FDRPath:String[i] + "\" 534 | Next 535 | EndIf 536 | 'Still couldn't find it after all that subfolder searching? 537 | If(FileType(BinPath + CUE.BinaryFN) <> 1) 538 | 'Then maybe the user renamed both files without editing inside the .CUE 539 | 'Lets try looking for it with the BaseName variable (what the .cue is called before the extension) 540 | If(FileType(BinPath + BaseName + ".bin") <> 1) 'Does it exist as a bin? 541 | CUE.BinaryFN = BinPath + BaseName + ".bin" 542 | ElseIf(FileType(BinPath + BaseName + ".img") <> 1) 'Or maybe as a img even? 543 | CUE.BinaryFN = BinPath + BaseName + ".img" 544 | Else 545 | RuntimeError("Can't find the .BIN/.IMG image file anywhere!") 546 | EndIf 547 | EndIf 548 | Return BaseName 'Return the BaseName because it's very useful 549 | EndFunction 550 | 551 | 'Exports the CUE array into a real CUE file 552 | Function ExportCue(ExportPath:String, BinaryPath:String) 553 | Local ExportFile:TStream = WriteFile(ExportPath) 554 | If Not(ExportPath) Then RuntimeError("Error writing to '" + ExportPath + "'!") 555 | 556 | 'Write the first track 557 | WriteLine(ExportFile, "FILE " + Chr(34) + BinaryPath + Chr(34) + " BINARY") 558 | 559 | For Local CueFile:CUE = EachIn CUE.List:TList 560 | 'Hasn't written the track before it 561 | If(CueFile.Index = 0) 562 | WriteLine(ExportFile, " TRACK " + CueFile.Track + " " + CueFile.TrackType) 563 | ElseIf(CueFile.TrackType = "MODE2/2352") 'So games with multiple BINARY tracks will export the CUE file correctly 564 | WriteLine(ExportFile, " TRACK " + CueFile.Track + " MODE2/2352") 565 | 'It seems MODE2 tracks remove the 2 second leadin aswell 566 | If(CueFile.Sector > 150) 567 | CueFile.Sector = CueFile.Sector - 150 568 | CueFile.MSF = SectorToMSF(CueFile.Sector) 569 | EndIf 570 | EndIf 571 | WriteLine(ExportFile, " INDEX " + CueFile.Index + " " + NumberToStrMSF(CueFile.MSF[0]) + ":" + NumberToStrMSF(CueFile.MSF[1]) + ":" + NumberToStrMSF(CueFile.MSF[2])) 572 | Next 573 | CloseFile(ExportFile) 574 | End Function 575 | 576 | 'Resets everything 577 | Function Clean() 578 | BinaryFN:String = Null 579 | BinPath:String = Null 580 | IsMultiTrack:Byte = False 581 | MultiSectorCount:Int = 0 582 | ClearList(List:TList) 583 | End Function 584 | EndType 585 | -------------------------------------------------------------------------------- /sbitools.bmx: -------------------------------------------------------------------------------- 1 | 'Includes only what it needs to. (Smaller executable) 2 | Framework brl.FileSystem 3 | Import BRL.Retro 4 | Import pub.FreeProcess 5 | Include "CRC16.bmx" 6 | Include "functions.bmx" 7 | 8 | 'Main Program 9 | Print "SBITools v0.3.2 - http://kippykip.com" 10 | Global Prog:Int = 0 11 | 12 | 'Check for psxt001z.exe 13 | If(FileType("psxt001z.exe") <> 1) Then RuntimeError("psxt001z.exe is missing! Please download it from GitHub") 14 | 15 | 'Are there arguments? 16 | If(Len(AppArgs) > 1) 17 | If(Lower(AppArgs[1]) = "-sbi2sub" And Len(AppArgs) >= 4) 18 | Prog:Int = 1 19 | ElseIf(Lower(AppArgs[1]) = "-lsd2sub" And Len(AppArgs) >= 4) 20 | Prog:Int = 2 21 | ElseIf(Lower(AppArgs[1]) = "-cue2ccd" And Len(AppArgs) >= 3) 22 | Prog:Int = 3 23 | ElseIf(Lower(AppArgs[1]) = "-singletrack" And Len(AppArgs) >= 3) 24 | Prog:Int = 4 25 | ElseIf(Lower(AppArgs[1]) = "-lsd2sbi" And Len(AppArgs) >= 3) 26 | Prog:Int = 5 27 | ElseIf(Lower(AppArgs[1]) = "-sbi2lsd" And Len(AppArgs) >= 3) 28 | Prog:Int = 6 29 | EndIf 30 | EndIf 31 | 32 | Select Prog 33 | Case 1 'SBI to SUB 34 | 'Safeguard 35 | If(FileType(AppArgs[3]) <> 1) Then RuntimeError("SBI subchannel doesn't exist!") 36 | 'Add the cue file 37 | CUE.AddCue(AppArgs[2]) 38 | Local BaseName:String = CUE.GetBinPath(CUE.FDRPath) 'This gives us the BaseName (filename before .cue) and also adds the binary locaton to CUE.BinaryFN 39 | 40 | 'Lets make an export folder 41 | Print "Exporting to: 'SUB\" + BaseName:String + "'\." 42 | If(FileType("SUB") <> 2) 'Does a SUB folder exist? 43 | CreateDir("SUB") 44 | Print "Directory 'SUB' doesn't exist! Creating..." 45 | EndIf 46 | 47 | 'Get the sector count 48 | Print "Image contains " + CUE.MultiSectorCount + " sectors..." 49 | 'Launch psxt001z with the following arguments 50 | GenSub("SUB\" + BaseName + ".sub", CUE.MultiSectorCount) 51 | 52 | 'Load it 53 | Local Subchannel:TBank = LoadBank("SUB\" + BaseName + ".sub") 54 | If Not(Subchannel) Then RuntimeError("Error reading created .SUB subchannel...") 55 | 'Launch the conversion function 56 | SBIToSub(AppArgs[3], Subchannel) 57 | SaveBank(Subchannel, "SUB\" + BaseName + ".sub") 'Save the modified SUB 58 | 'Hopefully everything worked 59 | OpenDir(".\SUB\") 'Open the directory! 60 | Case 2 'LSD to SUB 61 | 'Safeguard 62 | If(FileType(AppArgs[3]) <> 1) Then RuntimeError("LSD subchannel doesn't exist!") 63 | 'Add the cue file 64 | CUE.AddCue(AppArgs[2]) 65 | Local BaseName:String = CUE.GetBinPath(CUE.FDRPath) 'This gives us the BaseName (filename before .cue) and also adds the binary locaton to CUE.BinaryFN 66 | 67 | 'Lets make an export folder 68 | Print "Exporting to: 'CCD\" + BaseName:String + ".SUB'." 69 | If(FileType("SUB") <> 2) 'Does a SUB folder exist? 70 | CreateDir("SUB") 71 | Print "Directory 'SUB' doesn't exist! Creating..." 72 | EndIf 73 | 74 | 'Get the sector count 75 | Print "Image contains " + CUE.MultiSectorCount + " sectors..." 76 | 'Launch psxt001z with the following arguments 77 | GenSub("SUB\" + BaseName + ".sub", CUE.MultiSectorCount) 78 | 'Load it 79 | Local Subchannel:TBank = LoadBank("SUB\" + BaseName + ".sub") 80 | If Not(Subchannel) Then RuntimeError("Error reading created .SUB subchannel...") 81 | 'Launch the conversion function 82 | LSDToSub(AppArgs[3], Subchannel) 83 | SaveBank(Subchannel, "SUB\" + BaseName + ".sub") 'Save the modified SUB 84 | 'Hopefully everything worked 85 | OpenDir(".\SUB\") 'Open the directory! 86 | Case 3 'CCD Generator 87 | 'This was pretty handy 88 | 'https://books.google.com.au/books?id=76HVAwAAQBAJ&pg=PA233&lpg=PA233&dq=entry+1+clonecd&source=bl&ots=XEUM8fr_Sp&sig=GxJHxBp5AEFxbVgNMiGt69lB8Ds&hl=en&sa=X&ved=2ahUKEwjU5rqs_ezdAhVNITQIHTtxCyYQ6AEwA3oECAYQAQ#v=onepage&q=entry%201%20clonecd&f=false 89 | 90 | 'Add the cue file 91 | CUE.AddCue(AppArgs[2]) 92 | Local BaseName:String = CUE.GetBinPath(CUE.FDRPath) 'This gives us the BaseName (filename before .cue) and also adds the binary locaton to CUE.BinaryFN 93 | 94 | 'Useful CUE information we'll use below 95 | Local TrackCount:Int = CUE.CountCDDA(True) 'How many tracks in general are there? 96 | Local TrackCountCDDA:Int = CUE.CountCDDA() 'How many cd audio tracks are there? 97 | Local TotalMSFLeadin:Int[] = SectorToMSF(CUE.MultiSectorCount + 150) 98 | 99 | 'Lets make an export folder 100 | Print "Exporting to: 'CCD\" + BaseName:String + ".SUB'." 101 | If(FileType("CCD") <> 2) 'Does a CCD folder exist? 102 | CreateDir("CCD") 103 | Print "Directory 'CCD' doesn't exist! Creating..." 104 | EndIf 105 | If(FileType("CCD\" + BaseName:String) <> 2) 'Does the basename folder exist? 106 | CreateDir("CCD\" + BaseName:String) 107 | Print "Directory 'CCD\" + BaseName:String + "' doesn't exist! Creating..." 108 | EndIf 109 | 110 | Print "Creating CCD file" 111 | Local CCDFile:TStream = WriteFile("CCD\" + BaseName + "\" + BaseName + ".ccd") 112 | 113 | '0x04, otherwise if there are music tracks it's 0x00 114 | Local Control:String = "Control=0x04" 115 | If(TrackCountCDDA:Int > 0) 116 | Control:String = "Control=0x00" 117 | EndIf 118 | 119 | 'Here we go! Header 120 | Print "Writing CCD headers" 121 | WriteLine(CCDFile, "[CloneCD]") 122 | WriteLine(CCDFile, "Version=3") 123 | WriteLine(CCDFile, "[Disc]") 124 | WriteLine(CCDFile, "TocEntries=" + (3 + TrackCount)) 'Toc = Almost always 4, unless there's extra audio/data tracks in it 125 | WriteLine(CCDFile, "Sessions=1") 126 | WriteLine(CCDFile, "DataTracksScrambled=0") 127 | WriteLine(CCDFile, "CDTextLength=0") 128 | WriteLine(CCDFile, "[Session 1]") 129 | WriteLine(CCDFile, "PreGapMode=2") 'PS1 games are MODE2 130 | WriteLine(CCDFile, "PreGapSubC=1") 'Hell yeah we want a subchannel 131 | 132 | 'Entry 0, Always the same for PS1 dumps I believe 133 | Print "Writing CCD Entries" 134 | WriteLine(CCDFile, "[Entry 0]") 135 | WriteLine(CCDFile, "Session=1") 136 | WriteLine(CCDFile, "Point=0xa0") 137 | WriteLine(CCDFile, "ADR=0x01") 138 | WriteLine(CCDFile, "Control=0x04") 139 | WriteLine(CCDFile, "TrackNo=0") 140 | WriteLine(CCDFile, "AMin=0") 141 | WriteLine(CCDFile, "ASec=0") 142 | WriteLine(CCDFile, "AFrame=0") 143 | WriteLine(CCDFile, "ALBA=-150") 144 | WriteLine(CCDFile, "Zero=0") 145 | WriteLine(CCDFile, "PMin=1") 146 | WriteLine(CCDFile, "PSec=32") 147 | WriteLine(CCDFile, "PFrame=0") 148 | WriteLine(CCDFile, "PLBA=6750") 149 | 150 | 'Entry 1 151 | WriteLine(CCDFile, "[Entry 1]") 152 | WriteLine(CCDFile, "Session=1") 153 | WriteLine(CCDFile, "Point=0xa1") 154 | WriteLine(CCDFile, "ADR=0x01") 155 | 'Control var is used here 156 | WriteLine(CCDFile, Control:String) 157 | WriteLine(CCDFile, "TrackNo=0") 158 | WriteLine(CCDFile, "AMin=0") 159 | WriteLine(CCDFile, "ASec=0") 160 | WriteLine(CCDFile, "AFrame=0") 161 | WriteLine(CCDFile, "ALBA=-150") 162 | WriteLine(CCDFile, "Zero=0") 163 | WriteLine(CCDFile, "PMin=" + TrackCount) 'Number of total tracks, why this is stored in PMin I have no idea. It was listed in a Google book thing. 164 | WriteLine(CCDFile, "PSec=0") 'CDDA always 0 165 | WriteLine(CCDFile, "PFrame=0") 'CDDA always 0 166 | WriteLine(CCDFile, "PLBA=" + (MSFToSector(TrackCount, 0, 0) - 150)) 'MSF of above, but take -150 (ALBA) 167 | 168 | 'Entry 2 169 | WriteLine(CCDFile, "[Entry 2]") 170 | WriteLine(CCDFile, "Session=1") 171 | WriteLine(CCDFile, "Point=0xa2") 172 | WriteLine(CCDFile, "ADR=0x01") 173 | 'Control var is used here too 174 | WriteLine(CCDFile, Control) 175 | WriteLine(CCDFile, "TrackNo=0") 176 | WriteLine(CCDFile, "AMin=0") 177 | WriteLine(CCDFile, "ASec=0") 178 | WriteLine(CCDFile, "AFrame=0") 179 | WriteLine(CCDFile, "ALBA=-150") 180 | WriteLine(CCDFile, "Zero=0") 181 | WriteLine(CCDFile, "PMin=" + TotalMSFLeadin[0]) 'Minutes of the PLBA underneath, although 2 second leadin 182 | WriteLine(CCDFile, "PSec=" + TotalMSFLeadin[1]) 'Seconds of the PLBA underneath, although 2 second leadin 183 | WriteLine(CCDFile, "PFrame=" + TotalMSFLeadin[2]) 'Frames of the PLBA underneath, although 2 second leadin 184 | WriteLine(CCDFile, "PLBA=" + CUE.MultiSectorCount) 'It's just the total Sector count 185 | 186 | 'Loop through all the audio tracks 187 | Local CurrentEntry:Int = 3 188 | For Local CueFile:CUE = EachIn CUE.List:TList 189 | 'Is current track in the loop an AUDIO type with index 1? 190 | 'If(CueFile.TrackType = "AUDIO" And CueFile.Index = 1) 191 | If(CueFile.Index = 1) 192 | WriteLine(CCDFile, "[Entry " + CurrentEntry:Int + "]") 193 | WriteLine(CCDFile, "Session=1") 194 | 'Increases everytime, starts off at 2. It's a byte in HEX. Lowercase 195 | 'BMX's HEX function makes a 8 character string, so we have to cut it 196 | WriteLine(CCDFile, "Point=0x" + Lower(Right(Hex(CurrentEntry:Int - 2), 2))) 197 | WriteLine(CCDFile, "ADR=0x01") 198 | 'Audio tracks are 00, Data tracks are 04? 199 | If(CueFile.TrackType = "AUDIO") 200 | WriteLine(CCDFile, "Control=0x00") 201 | Else 202 | WriteLine(CCDFile, "Control=0x04") 203 | EndIf 204 | WriteLine(CCDFile, "TrackNo=0") 205 | WriteLine(CCDFile, "AMin=0") 206 | WriteLine(CCDFile, "ASec=0") 207 | WriteLine(CCDFile, "AFrame=0") 208 | WriteLine(CCDFile, "ALBA=-150") 209 | WriteLine(CCDFile, "Zero=0") 210 | 211 | 'Well, it seems every data track after track 1 doesn't have the 150 sector (2 second) leadin. Audio tracks do have the leadin though. 212 | If(CueFile.Sector > 150 And CueFile.TrackType = "MODE2/2352") 213 | 'Just a plain MSF to PLBA conversion, with the above varibles 214 | Local EntryMSF[] = SectorToMSF(CueFile.Sector) 215 | WriteLine(CCDFile, "PMin=" + EntryMSF[0]) 216 | WriteLine(CCDFile, "PSec=" + EntryMSF[1]) 'PLBA conversion + 150 217 | WriteLine(CCDFile, "PFrame=" + EntryMSF[2]) 'PLBA conversion + 150 218 | WriteLine(CCDFile, "PLBA=" + (CueFile.Sector - 150)) 'Seems to just be the sector count for the current track as INDEX 1 but with the leadin removed 219 | Else 'The CDDA tracks do though 220 | 'Just a plain MSF to PLBA conversion with a 2 second leadin 221 | Local EntryMSF[] = SectorToMSF(CueFile.Sector + 150) 222 | WriteLine(CCDFile, "PMin=" + EntryMSF[0]) 223 | WriteLine(CCDFile, "PSec=" + EntryMSF[1]) 'PLBA conversion + 150 224 | WriteLine(CCDFile, "PFrame=" + EntryMSF[2]) 'PLBA conversion + 150 225 | 'No leadin stuff here 226 | WriteLine(CCDFile, "PLBA=" + CueFile.Sector) 'Seems to just be the sector count for the current track as INDEX 1 227 | EndIf 228 | CurrentEntry = CurrentEntry + 1 'Increase the Entry count 229 | EndIf 230 | Next 231 | 232 | 'Basically just reading the cuefile as sectors instead of MSF at this point 233 | Print "Writing TRACK info" 234 | Local CurrentTrack:Int = 0 235 | 'Loop through all the listings again 236 | For Local CueFile:CUE = EachIn CUE.List:TList 237 | 'Does this current loop have a different track number? 238 | If(CueFile.Track <> CurrentTrack) 239 | CurrentTrack = CueFile.Track 240 | WriteLine(CCDFile, "[TRACK " + CurrentTrack:Int + "]") 241 | 'Is this track an Audio track? 242 | If(CueFile.TrackType = "AUDIO") 243 | WriteLine(CCDFile, "MODE=0") 244 | Else 245 | 'Then it's probably the data track 246 | WriteLine(CCDFile, "MODE=2") 247 | EndIf 248 | EndIf 249 | If(CueFile.TrackType = "MODE2/2352") 250 | If(CueFile.Sector > 150) 251 | WriteLine(CCDFile, "INDEX " + CueFile.Index + "=" + (CueFile.Sector - 150)) 252 | Else 253 | WriteLine(CCDFile, "INDEX " + CueFile.Index + "=" + CueFile.Sector) 254 | EndIf 255 | Else 256 | WriteLine(CCDFile, "INDEX " + CueFile.Index + "=" + CueFile.Sector) 257 | EndIf 258 | Next 259 | 260 | 261 | CloseFile(CCDFile) 262 | Print "Done writing CCD!" 263 | 264 | 'If it's a multitrack, combine it! 265 | If(CUE.IsMultiTrack) 266 | Print "Merging image (This will take a moment)" 267 | 'Local MergedImage:TStream = WriteFile("CCD\" + BaseName:String + "\" + BaseName:String + ".img") 268 | 'CopyStream 269 | CUE.MergeImage("CCD\" + BaseName:String + "\" + BaseName:String + ".img") 270 | Else 271 | Print "Copying image (This will take a moment)" 272 | CopyFile(CUE.BinPath + CUE.BinaryFN, "CCD\" + BaseName:String + "\" + BaseName:String + ".img") 273 | 'Print "BinPath:" + CUE.BinPath 274 | 'Print "BinaryFN:" + CUE.BinaryFN 275 | EndIf 276 | 277 | 'Alright, now lets make a modified cue 278 | Print "Creating modified CUE" 279 | CUE.ExportCue("CCD\" + BaseName:String + "\" + BaseName:String + ".cue", BaseName:String + ".img") 280 | Print "Done writing CUE!" 281 | 282 | 'Time to run psxt001z 283 | GenSub("CCD\" + BaseName:String + "\" + BaseName:String + ".sub", CUE.MultiSectorCount) 284 | 285 | 'LibCrypt + CDDA audio Patching 286 | 'SBI file found 287 | If(FileType(CUE.BinPath + BaseName + ".sbi")) 'SBI file found 288 | Print "LibCrypt patch '" + BaseName + ".sbi' was found! Patching subchannel..." 289 | 'Load the subchannel 290 | Local Subchannel:TBank = LoadBank("CCD\" + BaseName + "\" + BaseName + ".sub") 291 | If Not(Subchannel) Then RuntimeError("Error loading subchannel!") 'Did it load? 292 | SBIToSub(CUE.BinPath + BaseName + ".sbi", Subchannel) 'Run the patching function 293 | SaveBank(Subchannel, "CCD\" + BaseName + "\" + BaseName:String + ".sub") 'Save the modified SUB 294 | 'LSD file found 295 | ElseIf(FileType(CUE.BinPath + BaseName + ".lsd")) 296 | Print "LibCrypt patch '" + BaseName + ".lsd' was found! Patching subchannel..." 297 | 'Load the subchannel 298 | Local Subchannel:TBank = LoadBank("CCD\" + BaseName + "\" + BaseName + ".sub") 299 | If Not(Subchannel) Then RuntimeError("Error loading subchannel!") 'Did it load? 300 | LSDToSub(CUE.BinPath + BaseName:String + ".lsd", Subchannel) 'Run the patching function 301 | SaveBank(Subchannel, "CCD\" + BaseName + "\" + BaseName + ".sub") 'Save the modified SUB 302 | Else 'No patches found... 303 | Print "Could not find '" + CUE.BinPath + BaseName + ".sbi'! Skipping..." 304 | Print "Could not find '" + CUE.BinPath + BaseName + ".lsd'! Skipping..." 305 | Print "LibCrypt .SBI/.LSD patches not found in CUE directory! Ignoring .SUB patching..." 306 | 307 | 'Load the subchannel 308 | Local Subchannel:TBank = LoadBank("CCD\" + BaseName + "\" + BaseName + ".sub") 309 | If Not(Subchannel) Then RuntimeError("Error loading subchannel!") 'Did it load? 310 | GenSubCDDA(Subchannel) 'Run the SUB audio tracks function 311 | SaveBank(Subchannel, "CCD\" + BaseName:String + "\" + BaseName + ".sub") 'Save the modified SUB 312 | EndIf 313 | 314 | Print "Done converting!" 315 | Print "Everything exported to: '" + "CCD\" + BaseName + "\'" 316 | OpenDir(".\CCD\" + BaseName + "\") 'Open the directory! 317 | Case 4 'Single Track CUE converter 318 | 'Add the cue file 319 | CUE.AddCue(AppArgs[2]) 320 | Local BaseName:String = CUE.GetBinPath(CUE.FDRPath) 'This gives us the BaseName (filename before .cue) and also adds the binary locaton to CUE.BinaryFN 321 | 322 | 'Lets make an export folder 323 | Print "Exporting to: 'CUE\" + BaseName:String + "'\." 324 | If(FileType("CUE") <> 2) 'Does a CUE folder exist? 325 | CreateDir("CUE") 326 | Print "Directory 'CUE' doesn't exist! Creating..." 327 | EndIf 328 | If(FileType("CUE\" + BaseName:String) <> 2) 'Does the basename folder exist? 329 | CreateDir("CUE\" + BaseName:String) 330 | Print "Directory 'CUE\" + BaseName:String + "' doesn't exist! Creating..." 331 | EndIf 332 | 333 | 'Should be multitrack 334 | If(CUE.IsMultiTrack) 335 | Print "Merging image (This will take a moment)" 336 | CUE.MergeImage("CUE\" + BaseName:String + "\" + BaseName:String + ".bin") 337 | Else 338 | RuntimeError("BIN/CUE setup is already single track binary!") 339 | EndIf 340 | 341 | 'Alright, now lets make a modified cue 342 | Print "Creating modified CUE" 343 | CUE.ExportCue("CUE\" + BaseName:String + "\" + BaseName:String + ".cue", BaseName:String + ".bin") 344 | Print "Done writing CUE!" 345 | 346 | 'SBI file found 347 | If(FileType(CUE.BinPath + BaseName + ".sbi")) 'SBI file found 348 | Print "LibCrypt patch '" + BaseName + ".sbi' was found! Copying..." 349 | CopyFile(CUE.BinPath + BaseName + ".sbi", "CUE\" + BaseName:String + "\" + BaseName:String + ".sbi") 350 | 'LSD file found 351 | ElseIf(FileType(CUE.BinPath + BaseName + ".lsd")) 352 | Print "LibCrypt patch '" + BaseName + ".lsd' was found! Copying..." 353 | CopyFile(CUE.BinPath + BaseName + ".lsd", "CUE\" + BaseName:String + "\" + BaseName:String + ".lsd") 354 | Else 355 | Print "No LibCrypt .LSD/.SBI patches were found. Ignoring..." 356 | EndIf 357 | Print "Finished!" 358 | OpenDir(".\CUE\" + BaseName + "\") 'Open the directory! 359 | Case 5 'LSD2SBI 360 | 'Does it exist? 361 | If(FileType(AppArgs[2]) <> 1) Then RuntimeError(".LSD subchannel doesn't exist!") 362 | 363 | 'Split the path and fix the slashes etc 364 | Local FDRPath:String[] = AppArgs[2].Replace("/", "\").Split("\") 365 | 'This just gets the name of the lsd. Say if it was "C:\CoolGame.lsd", this would return "CoolGame" 366 | Local BaseName:String = Left(FDRPath[Len(FDRPath) - 1], Len(FDRPath[Len(FDRPath) - 1]) - 4) 367 | 368 | 'Lets make an export folder 369 | Print "Exporting as: 'SBI\" + BaseName:String + ".sbi'." 370 | If(FileType("SBI") <> 2) 'Does a SBI folder exist? 371 | CreateDir("SBI") 372 | Print "Directory 'SBI' doesn't exist! Creating..." 373 | EndIf 374 | 375 | 'Set the vars! 376 | Local LSDFile:TStream = ReadFile(AppArgs[2]) 377 | Local SBIFile:TStream = WriteFile("SBI\" + BaseName + ".sbi") 378 | If Not (SBIFile) Then RuntimeError("Error writing SBI!") 379 | 380 | 'Begin writing SBI header 381 | Print "Writing SBI header..." 382 | WriteString(SBIFile, "SBI") 383 | WriteByte(SBIFile, 0) 384 | 385 | 'Loop through the whole LSD file! 386 | Print "Writing QSUB's..." 387 | While Not(Eof(LSDFile)) 388 | WriteByte(SBIFile, ReadByte(LSDFile)) 'Minutes 389 | WriteByte(SBIFile, ReadByte(LSDFile)) 'Seconds 390 | WriteByte(SBIFile, ReadByte(LSDFile)) 'Frames 391 | WriteByte(SBIFile, 1) 'Dummy byte 392 | 393 | 'QSUB 394 | For Local x = 0 To 9 395 | WriteByte(SBIFile, ReadByte(LSDFile)) 396 | Next 397 | 398 | 'CRC16, unused for SBI conversion 399 | ReadByte(LSDFile) 400 | ReadByte(LSDFile) 401 | Wend 402 | 403 | 'Done! 404 | CloseFile(LSDFile) 405 | CloseFile(SBIFile) 406 | Print "Finished!" 407 | OpenDir(".\SBI\") 'Open the directory! 408 | Case 6 'SBI2LSD 409 | 'Does it exist? 410 | If(FileType(AppArgs[2]) <> 1) Then RuntimeError(".SBI subchannel doesn't exist!") 411 | 412 | 'Split the path and fix the slashes etc 413 | Local FDRPath:String[] = AppArgs[2].Replace("/", "\").Split("\") 414 | 'This just gets the name of the lsd. Say if it was "C:\CoolGame.lsd", this would return "CoolGame" 415 | Local BaseName:String = Left(FDRPath[Len(FDRPath) - 1], Len(FDRPath[Len(FDRPath) - 1]) - 4) 416 | 417 | 'Lets make an export folder 418 | Print "Exporting as: 'LSD\" + BaseName:String + ".lsd'." 419 | If(FileType("LSD") <> 2) 'Does a LSD folder exist? 420 | CreateDir("LSD") 421 | Print "Directory 'LSD' doesn't exist! Creating..." 422 | EndIf 423 | 424 | 'Set the vars! 425 | Local SBIFile:TStream = ReadFile(AppArgs[2]) 426 | '4801107 = [SUB\0] header as an int 427 | If(ReadInt(SBIFile) <> 4801107) Then RuntimeError("This isn't a valid SBI file!") 428 | 429 | 'Now 430 | Local LSDFile:TStream = WriteFile("LSD\" + BaseName + ".lsd") 431 | If Not (LSDFile) Then RuntimeError("Error writing LSD!") 432 | 433 | 'Loop through the whole SBI file! 434 | Print "Writing QSUB's/CRC16's..." 435 | While Not(Eof(SBIFile)) 436 | WriteByte(LSDFile, ReadByte(SBIFile)) 'Minutes 437 | WriteByte(LSDFile, ReadByte(SBIFile)) 'Seconds 438 | WriteByte(LSDFile, ReadByte(SBIFile)) 'Frames 439 | ReadByte(SBIFile) 'Dummy byte 440 | 441 | 'QSUB 442 | Local QSub:Byte[10] 443 | For Local x = 0 To 9 444 | QSub[x] = ReadByte(SBIFile) 445 | WriteByte(LSDFile, QSub[x]) 'QSUB Byte 446 | Next 447 | 448 | 'CRC16 regeneration 449 | Local SUB_CRC16:Short = ~CRC16(QSub) 450 | Local SUB_CRCA:Byte = (SUB_CRC16) Shr 8 451 | Local SUB_CRCB:Byte = (SUB_CRC16) - (SUB_CRCA Shl 8) 452 | 'Have to do it this way as PokeShort will reverse to little endian or something 453 | WriteByte(LSDFile, SUB_CRCA) 454 | WriteByte(LSDFile, SUB_CRCB) 455 | Wend 456 | 457 | 'Done! 458 | CloseFile(LSDFile) 459 | CloseFile(SBIFile) 460 | Print "Finished!" 461 | OpenDir(".\LSD\") 'Open the directory! 462 | 463 | Default 'No arguments 464 | Print "Missing command line!" 465 | Print "" 466 | Print "SBITools.exe -cue2ccd cuefile.cue" 467 | Print "SBITools.exe -lsd2sub cuefile.cue subchannel.lsd" 468 | Print "SBITools.exe -lsd2sbi subchannel.lsd" 469 | Print "SBITools.exe -sbi2sub cuefile.cue subchannel.sbi" 470 | Print "SBITools.exe -sbi2lsd subchannel.sbi" 471 | Print "SBITools.exe -singletrack cuefile" 472 | Print "" 473 | Print "Definitions:" 474 | Print "-cue2ccd: Converts a 'BIN/CUE/SBI|LSD' setup into a 'IMG/CCD/CUE/SUB' setup." 475 | Print " This makes burning LibCrypt games easily possible with software such" 476 | Print " as CloneCD. SBI/LSD files are loaded from the same directory as the .CUE" 477 | Print " file under the same name." 478 | Print "-lsd2sub: Creates a patched .SUB subchannel with a .LSD file." 479 | Print "-lsd2sbi: Converts a .SBI subchannel patch to a .LSD subchannel patch." 480 | Print "-sbi2sub: Creates a patched .SUB subchannel with a .SBI file." 481 | Print "-sbi2lsd: Converts a .SBI subchannel patch to a .LSD subchannel patch." 482 | Print " NOTE: This cannot perfectly reconstruct the missing CRC16 bytes!" 483 | Print "-singletrack: Converts a seperate track BIN/CUE setup into a single track" 484 | Print " BIN/CUE setup." 485 | Print "" 486 | Print "Examples:" 487 | Print "SBITools.exe -cue2ccd " + Chr(34) + "C:\CoolGameRips\MediEvil.CUE" + Chr(34) 488 | Print "" 489 | Print "SBITools.exe -sbi2sub " + Chr(34) + "C:\CoolGameRips\VRally2.CUE" + Chr(34) + " " + Chr(34) + "C:\CoolGameRips\sbipatches\V-Rally - Championship Edition 2 (Europe) (En,Fr,De).sbi" + Chr(34) 490 | Print "" 491 | Print "SBITools.exe -lsd2sub " + Chr(34) + "C:\CoolGameRips\MediEvil.CUE" + Chr(34) + " " + Chr(34) + "C:\CoolGameRips\sbipatches\MediEvil (Europe).lsd" + Chr(34) 492 | Print "" 493 | Print "SBITools.exe -sbi2lsd " + Chr(34) + "C:\CoolGameRips\sbipatches\V-Rally - Championship Edition 2 (Europe) (En,Fr,De).sbi" + Chr(34) 494 | Print "" 495 | Print "SBITools.exe -lsd2sbi " + Chr(34) + "C:\CoolGameRips\sbipatches\MediEvil (Europe).lsd" + Chr(34) 496 | Print "" 497 | Print "SBITools.exe -singletrack " + Chr(34) + "C:\CoolGameRips\VRally2.CUE" + Chr(34) 498 | Delay 1000 499 | End Select 500 | --------------------------------------------------------------------------------