Next Generation Emulation banner

Disc Combining Kits

96K views 206 replies 37 participants last post by  Frazzled1990 
#1 · (Edited)
Some multi-disc games can be merged into 1 bin/cue file for emulators

PSP: There's now reports that some kits have problems with PSX2PSP (ex. FFVII)
PSP: Chrono Cross, Parasite Eve 1 are guaranteed to work on PSP


NTSC-U collection
Alone in the Dark - The New Nightmare
Brain Dead 13
Chrono Cross (*** POSSIBLE VIRUS WARNING ***)
Colony Wars
Countdown Vampires
D
Dragon Warrior VII
Driver 2
Fear Effect
Fear Effect 2
Final Fantasy VII
Final Fantasy VIII
Final Fantasy IX
G-Police
Galerians
Grandia
Heart of Darkness
In Cold Blood
Koudelka
Legend of Dragoon
Lunar - Silver Star Story Complete
Lunar 2 - Eternal Blue Complete
Metal Gear Solid
Novastorm
Oddworld - Abe's Exoddus
Parasite Eve
Parasite Eve II
Shadow Madness
Star Ocean - The Second Story
Star Wars - Rebel Assault II - The Hidden Empire
Syphon Filter 2
Tales of Destiny II
Thousand Arms
Valkyrie Profile
Wild Arms 2
Xenogears


NTSC-J collection
Brain Dead 13
Colony Wars
Creature Shock
Dragon Quest VII
Parasite Eve
Policenauts
Star Ocean - The Second Story
Valkyrie Profile
Wild Arms - 2nd Ignition
Xenogears


PAL-E (S/G/I/F/..) collection
Colony Wars
Driver 2 - Back On the Streets
Heart of Darkness
In Cold Blood
Novastorm
Star Wars - Rebel Assault II - The Hidden Empire


ePSXe_DVD5:
Latest build (v5)

Master files list:
Attachments - Emuforums.com


WARNING:
Suggested not to re-rip your CD image using CloneCD / Alcohol from a virtual drive to create a 'bin' or 'img'.

MagicISO / ISOBuster supposedly works to convert img, iso, mdf, bwt to 'bin' or 'iso'.

Games bought from the Sony PSN store are DRM-encrypted and cannot work with these kits unless you decrypt them and convert the PSP eboot. No support will be given in this thread.


PROBLEMS:
Try looking at this post [URL="http://forums.ngemu.com/misc-psx-discussion/118402-disc-combining-kits-5.html#post1735866]HERE[/URL] which will let us examine your files.


OPTIONAL:
If you want to verify that your PS1 discs are accurate before merging..

Method 1:
Redump disc repair guide

Method 2:
1) Download the latest beta of CDMage (freeware) @ CDmage - CD image handling tool
2) Run CDMage
3) File -> Open (cue, ccd, bin, img, ..)
4) Action -> Scan for Corruption -> OK

0 errors = :)
1+ errors = :*( - bad opcode, glitchy movie, or you may never notice the problem in-game

Then visit here if you want to verify your discs:
redump.org PSX discs
 
See less See more
#2 ·
Only for the PSP, it will not work on any PSX emulator.
 
#3 ·
I've used the parasite eve one with epsxe 1.7.0 (ISO loading). Played start to finish perfectly with no problems. Including ex-game.

Playing the lunar one with epsxe 1.7.0 (ISO loading). No problems so far (start to end-game tower).

Note:
The tools create an ISO but creating the EBOOT (PSP) is a seperate process.
Maybe I'm completely mistaken though (..?)
 
#4 ·
This interests me, maybe possible to combine the 4 FF9 CD's into a DVD?
 
#7 ·
multidisk psx games tend to mirror the textures of all area's on each disk, with usually only the fmv's being different... unless you count FF8, of which theres 1 or 2 FMV's on disk 2 that are also on disk 3..... iiirc... been awhile since i was in the debug room.
 
#8 ·
Began checking the first two FF9 discs more closely. I think you are right. And the game looks to use internal file IDs, making collisions probably remote.

If I had more HDD space, I'd dump all 4 discs and rig the extractor to do sector comparisons for safety. Then create some test images.

Don't know anything about how the disc swap check would work.
Otherwise, your idea seems more concrete.
I'll give the builder more thought in the meantime.

FF9 Extractor
http://forums.qhimm.com/index.php?topic=5481.0
 
#10 · (Edited)
Lunar 2 combiner

Code:
Lunar 2 - Eternal Blue Complete [SLUS-01071 / 01239 / 01240]

This will combine your 3 game CDs into 1 disc
Tested only with epsxe 1.7.0

WARNING:
You'll need ~6GB to finish the operation
Current: v1

Preview fixes:
- Movie player (permanent)
- CD swapper (permanent)


NOTE:
The old kit was badly broken (in-game movie player). It is now deprecated to preview status.
 
#12 ·
Okay, I'll hold off for the moment. Finished the merger program but if someone else wants to work, don't mind at all. :) :)

(confirmed)
- Movies are loaded via ISO table
- FF9.IMG can be relocatable
- CD checks are done by looking for the presence of specific SLUS_* files
(I don't know where this happens yet)
 
#15 ·
did someone screw the uploads folder again.
 
#16 · (Edited)
I'll give it a go, like everything I do it'll be quite the hack job haha. If you're wondering about the disc check, the routine is stored in FF9.IMG (like most Square games lots of code for different segments of the game is swapped in and out to save RAM). It's loaded at the address 0x0a8234 in the RAM and looks like this:

03004010FF00022498A0020C21204002

If you change it to...

03004010FF0002240000000000000000

... then it'll bypass the jump and link function to the disc change screen and the game will load as usual.

Edit: And it may be the spacing issue, seeing as the game uses the next file's start sector to determine how large the current file it's loading is, the game may be trying to load 0x800 of free space where it can't.

Edit2: Good work on your Lunar merge kits BTW, I think I'll use M2CDMaker for FFIX as well... may make things easier.

Eidt3: 4:30 AM and I'm not thinking quite straight. In case you didn't know, I go by the name of psychospacefish on some message boards.
 
#17 · (Edited)
Thanks, I see it now. :)

Got lucky with the Lunars - friendly enough for cd2dvd. Normally I work with PC conversions (cd-2-dvd) but the Eve1 got me interested.

Make sure to use the Lunar2 one - fixes some stupid root dir LBA bugs. And m2cdmaker wants all the root files listed first, then any sub-directory ones. There's also another current bug with subdirectory extraction - doesn't handle spanning yet.

Don't plan to do any more conversions for awhile - they appear much harder than I'd thought. Grandia and Star Ocean might be fun to try though (MGS has differing contents for RADIO and STAGE but merging all those files looks damn tough). I've heard that Chrono Cross actually hides its files. >=o


EDIT:
Out of curiosity, checked out Grandia. There's a few conflicting files with same names.. :|

Merging all the FF9.IMG files together is a little too large for the RAM to handle. Re-creating the FAT table maybe could be possible, which looks like a lot of work for any determined person. :frustrated:
 
#18 ·
Do you mean that the game can't handle directory tables larger than 2 sectors (thus requiring some ASM work to get the game to read them)? Or do you mean that when recreating the FAT you have to account for the fact that some directory tables will be more than 2 sectors?

Grandia may be tricky because I think that the voice/music file's indexes are relative to the disc (meaning that for example the game may reference file 125 on disc 1 and file 125 on disc 2, but they'll be different files for different purposes). Also Grandia has that nasty disc-swapping mechanism that requires you to reset and reload to continue playing, not sure how you'd get around that.
 
#19 ·
Normally the game DMAs about 11-12 $800 blocks to the tail-end of RAM (full directory info, ~1F3700). Merging all the files expands to 15 blocks, passing the RAM barrier and creates a hard crash.

merger wip:
http://www.megaupload.com/?d=8H2STXJF
(create folders cd1/cd2/cd3/cd4/out; place FF9.IMG in each disc folder, out is ~675MB)

Recreating FAT:
- replacing directory table sector #s with real offset values
- (directory 0) + (directory 1) + (directory 2) all in the same $800 block.

Problem areas noted:
$8001debc - this controls how many blocks to DMA. Used a ADDIU v1,r0,$7800 to hard-code it.
$8001df08 - used to load directory 0 (?)
$8001df70 - log says it's loading sector c (#10)
more ex. SLL 00000009 (v0), 00000009 (v0), 0b (11)

Got a migraine from trying to understand everything. Currently my build just infinitely repeatedly CD-ROM reads the last directory sector after grabbing the directory data.


Haven't played Grandia in a long time. That sounds really nasty. o_o
 
#20 · (Edited)
So you've clumped all the directory tables together in one big block? I'm looking at the loading routine now, wouldn't it just be easier to hardcode the DMA address to 1F0000 or thereabouts? I suck at coding, so I'm writing an extractor/rebuilder/mess right now... the extractor part's working, haven't looked at the rebuilder yet.
 
#21 · (Edited)
I'm looking at the loading routine now, wouldn't it just be easier to hardcode the DMA address to 1F0000 or thereabouts?
Don't know if it'd be safe. Haven't thought about it though.

Got another idea to try out:
Rename FF9.IMG --> F91/F92/F93/F94.IMG
Edit the SLUS file to \F91.IMG;1
Every time the disc swap fails, in-game patch the disc# to F92/F93/F94 and continue playing (using the disc swap routine area).


EDIT:
Tried a test run. It worked! :excited:
Just need to make a better patching tool (flexible) and we're good for DVD.
 
#23 ·
Awesome work. I'm still going to try making a combined FF9.IMG for space-saving reasons mostly. If the moving the address the sectors are dumped from the disc doesn't work, I've got another idea that's similar to what I did to Rogue Galaxy to make a DVD5 version, making the merged bigfile with four FATs.
 
#25 ·
Hmm, I managed to get your merged FAT to load (with a couple of tweaks), and the game loads to the menu but freezes when trying to start or load a game and I'm not exactly sure why, I'm not sure if it's the fact that the game can't read a part of the table for some reason or if it's because of the size of some of the merged directories. Looking through tracedumps is not fun.
 
#26 · (Edited)
Wow! That's really surprising.
I agree - trace logs are a pain.

You could try PCSX Agemo (CPU Interpreter with emulog.txt has every CDROM LBA read in - that's what tipped me off about things going wrong).

8002037c-80023d0 is when the game converts the LBA # --> BCD m:s:f format. Expanded the minutes to 16-bits but still can't kludge it yet.

SLUS_012.51:
FF9.IMG;1 --> F91.IMG;1

Used these patches for FF9.IMG:

Writes F91/F92/F94/F98 --> F91.IMG;1
0F0084300F00A23024104400261044000800E0032B100200
300082240180043C03048434000082A00800E0032B100000

Force CD swap path
03004010FF00022498A0020C21204002
00000000FF00022498A0020C21204002

Force CD1 swap screen
07004014211060000100632404006228
07000010211060000100632404006228

Skip CD swap splash screen
D471000C212800002400BF8F2000B08F
00000000212800002400BF8F2000B08F


Going to be really glad when someone finishes this project.


EDIT:
Attachments now provided.

EDIT2:
FF9 starts writing to CDROM regs @ 8001f978-8001f984 (m:s:f). In that order. Which suggests that 99:59:74 is the upper limit. Unless there's another way to access higher LBA data.

Not sure what happened with Lunar 2 (rememberizer) - worked on my mini-build but not with a full image. Same problem maybe. Going to take that down.

Still trying to finish Lunar 1. So I'll leave it up for now.. :(

EDIT3:
Maybe I need a good break.

Lunar 1 conversion should work. Tested on several movies past 100 minute mark.

PS1 takes m:s:f.
(PS1) a1:50:1 --> (LBA) 101:50:1 (6FD75)
$AFBE8 is about the limit ff:59:74.
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top