Experiment #1: Dummy padding Saturn games

MasterAkumaMatata

Established Member
Experiment:
  1. Get Dummy Add, make sure it's DA.EXE when unzipped.
  2. Create or get a BIN+CUE of Street Fighter Alpha 2: SFA2.BIN and SFA2.CUE. Cue sheet looks like this:

    Code:
    FILE "SFA2.BIN" BINARY
    
     TRACK 01 MODE1/2352
    
      INDEX 01 00:00:00
    
     TRACK 02 AUDIO
    
      PREGAP 00:02:00
    
      INDEX 01 43:59:73
  3. Run DA.EXE SFA2 SFA2_NEW in a command prompt; pad for 80 minute CD-R
  4. Extract the audio track from SFA2 disc to a WAV file; call it TRACK02.WAV
  5. Add the audio track to SFA2_NEW.cue to look like this:

    Code:
    FILE "SFA2_NEW.iso" BINARY
    
     TRACK 01 MODE1/2048
    
      INDEX 01 00:00:00
    
      POSTGAP 00:02:00
    
    FILE TRACK02.WAV WAVE
    
     TRACK 02 AUDIO
    
      PREGAP 00:02:00
    
      INDEX 01 00:00:00
  6. Load SFA2_NEW.cue with CDRWin, FireBurner, BlindWrite, or Nero and burn to CD-R
  7. Test on modded Saturn (use swap trick otherwise)
Conclusion: The game plays fine. However, no significant, if any, noticeable increase in loading time. Proceed to experiment on another ISO+short audio track game: Shining The Holy Ark:

Code:
FILE "STHA.BIN" BINARY

 TRACK 01 MODE1/2352

  INDEX 01 00:00:00

 TRACK 02 AUDIO

  PREGAP 00:02:00

  INDEX 01 24:20:50
 
Oookay...ummm would it be silly to ask why you need to go to so much trouble to prove that it is useless?
 
Just for the fun of it.  
biggrin.gif
 
My next experiment is to see if I can play custom made CPK movies using just the 0.BIN file from SFA2 and renaming my custom made CPK movie to "INTRO.CPK". As you know, the Capcom logo intro ("INTRO.CPK") plays before anything else on the game, so if the 0.BIN file acts like the 1ST_READ.BIN for the DC, it might be possible to make it play a whole length CPK movie.

If it plays, I can forsee it crashing on right after the movie ends since the 0.BIN calls on other files as well.
biggrin.gif
 
OK, I'm ready to share my results with the CPK movie experiment.
  1. Using IsoBuster, I extracted the first 26 files from my original SFA2 disc that was sorted from lowest LBA onward, one of which was the Capcom logo intro "LOGO.CPK", and saved it to a blank folder called "data" on my HDD.
  2. Next, I took the intro movie "ARKNS.CPK" from Shining the Holy Ark and copied it to my HDD, renamed it to "LOGO.CPK", moved it to the "data" folder mentioned above, and overwrote the "LOGO.CPK" file there.
  3. Using MKISOFS.EXE from the DC selfboot toolkit, I recreated an ISO containing the 26 files from the "data" folder using this sort text file "sfa2.txt":

    Code:
    data/STDEMO.PAK 489
    
    data/EFCT00.PAK 490
    
    data/OMAKE.Z 491
    
    data/BACKUP.Z 492
    
    data/OPTION.Z 493
    
    data/NOWLOAD.COL 494
    
    data/NOWLOAD.MAP 495
    
    data/NOWLOAD.DOT 496
    
    data/SELECT.PAK 497
    
    data/SELECT.Z 498
    
    data/BIGFACE.COL 499
    
    data/TITLE.PAK 500
    
    data/OPENING.Z 501
    
    data/OPENING.BIN 502
    
    data/BACKUP.CHA 503
    
    data/WARNING.PAK 504
    
    data/AKEBONO.COL 505
    
    data/ASCII.COL 506
    
    data/ASCII.BIN 507
    
    data/LOGO.CPK 508
    
    data/MOVIE.Z 509
    
    data/SDDRVS.PAK 510
    
    data/SFA2UBIB.TXT 511
    
    data/SFA2UABS.TXT 512
    
    data/SFA2UCPY.TXT 513
    
    data/0.BIN 514
    and this command line:

    mkisofs -V STREET_FIGHTER_ALPHA2 -l -sort sfa2.txt -o sfa2.iso data

    The result was a 20.9 MB regular MODE1/2048 ISO file.
  4. Using CDRWin, I extracted sector 0 to sector 15 from my original SFA2 disc as MODE1/2048 and named it IP.BIN. IP.BIN should be exactly 32KB (32,768 bytes).
  5. Using Echelon's IPINS.EXE tool, I've patched sfa2.iso with IP.BIN.
  6. To be on the safe side, I've extracted the audio track from my original copy of SFA2 as a WAV file to my HDD and called it TRACK02.WAV.
  7. Using the simple cue sheet below, I've burned it to CD-R.

    Code:
    FILE "sfa2.iso" BINARY
    
     TRACK 01 MODE1/2048
    
      INDEX 01 00:00:00
    
      POSTGAP 00:02:00
    
    FILE TRACK02.WAV WAVE
    
     TRACK 02 AUDIO
    
      PREGAP 00:02:00
    
      INDEX 01 00:00:00
  8. When done burning, I've tested it on my modded Saturn.
Conclusion:

To my satisfaction, my hacked ISO booted up fine, and as I expected, the intro movie to Shining the Holy Ark was playing in place of the Capcom logo intro
biggrin.gif
However, the playback was a bit choppy and slow compared to its original speed (i.e., it took 102 seconds to finish playback compared to the normal playback time of 61 seconds). This is most likely due to the LBA difference of the movie file (i.e., LBA 64,399 in original STHA disc and LBA 193 in the one I created). Perhaps dummy padding to 74 or 80 minutes would speed things up. Will do that on next experiment, which is to really encode an AVI file with the Cinepak codec and then convert that to CPK using David Midknight's AVI to CPK Converter tool that RadSil gave me a long time ago.

Anyway, after the movie finished playing, it displayed the words "NOW LOADING" in SFA2 font, followed by the name Capcom as it normally does in SFA2 before the realtime intro movie that starts out showing fire burning with Akuma in the center of it. After the word Capcom, a blank screen came up and didn't go away until I powered off the Saturn.
 
Actually, there is theory to support the idea that padding might slightly reduce seek times on a CLV drive, but it won't help overall transfer rates unless you've got an application that's constantly seeking.

Which file gets loaded first apparently depends on stuff in the IP.BIN; details of this are unknown to me, except that the standard IP.BIN seems to always boot the first file on the disc regardless of filename.

As for the Cinepak replacement experiment, you may have replaced the Capcom intro video with a file that used a different Cinepak encoding method not fully supported by the playback code present on SFA2. Have you considered trying a different Cinepak-using game as the "host"?
 
Originally posted by ExCyber+May 21 2002,09:52--><div class='quotetop'>QUOTE(ExCyber @ May 21 2002,09:52)</div><div class='quotemain'>Which file gets loaded first apparently depends on stuff in the IP.BIN; details of this are unknown to me, except that the standard IP.BIN seems to always boot the first file on the disc regardless of filename.[/b]


You're right. The IP.BIN for Saturn games does not specify which file to load first. Therefore, it would be logical to think that Saturn games always boot from the first file on the disc in alpha-numeric order. I put several random Saturn games into my computer and noticed this to be true.

Knowing this, I now realize why (six months ago when I first got my modded Saturn) my first attempt at adding a dummy file to a remastered SFA2 didn't boot. Silly me, it was trying to boot from the dummy file.
biggrin.gif
Therefore, if you must add a dummy file, make sure to name it as the second file listed in alpha-numeric order.

<!--QuoteBegin-ExCyber
@May 21 2002,09:52

As for the Cinepak replacement experiment, you may have replaced the Capcom intro video with a file that used a different Cinepak encoding method not fully supported by the playback code present on SFA2. Have you considered trying a different Cinepak-using game as the "host"?[/quote]

I thought about that when I chose to replace with the intro movie of Shining the Holy Ark. Perhaps because the video files were created by different developers (Capcom vs. Sega), or perhaps due to the date difference, that slightly different versions of the Cinepak codec were used. The Capcom intro video file was dated September 13, 1996 while the intro video file for StHA was dated March 4, 1997.
 
What kinda limitation are there to the Cinepak format...

I think I got the video and audio set right... but what about filesize limit.. can the video be no long than 5 mins... or maybe.. no bigger than 100 MB.... if this is the case.. than we'd need to split up the video files into multiply files.. which is fine by me... but then..we'd most denefitly need a custom player to CPK videos... to load one part after anther... and that doesn't exist....
 
There might be a way to hack the 0.BIN file from SFA2. Looking at the 0.BIN file with a hex editor, I can actually see the names of files, including LOGO.CPK and other files mentioned on my sort text file listed above. If I know what file is called on after LOGO.CPK, I may be able to hack the 0.BIN to call on another CPK video file instead. Experimenting may tell me whether if it will work.

To find out the limits on file size and time, I'll have to do another experiment: encode an AVI that would take up almost all of an 80 minute CD-R. I'll post my results when I'm done.
 
I've been playing around with a 30 minute video clips... and replacing it with the F3.CPK file on Shining Force III... as near as I can tell... the video's are encoded excatly the same... right down to the res. codec, audio.. etc... using the file information... in VirtualDub both movies like the.. yet.. I still can't seem to make it work... the CD boots up just find.. but just skips the video.. and goes to the intro screen and you can keep playing...
 
I think there's a difference between Saturn CinePak and the CinePak codec in windows that virtualdub uses. That's why you need the AVI to CPK converter.
 
of course I'm using the avi to cpk program... if I take the CPK2AVI program.. and convert the F3.CPK to F3.AVI.. and then look at the file infomation of the AVI file in VirtualDub... and then I took at 30 min video file I had.. and encoded it to the same settings VirtualDub showed me... and then looked at the File information using VirtualDub.. and they both look the same... so I use the AVI2CPK program... to convert my 30 minute video file to the CPK format.. replaced the file on the CD... and burned it... but the Saturn just skips the file...and goes to the intro
 
the CD boots up just find.. but just skips the video.. and goes to the intro screen and you can keep playing...

Sounds like the Cinepak decoder found something in the header it didn't like and just returned to the caller with an error code, which was probably ignored since the video isn't an essential function.
 
Oh kick ass
smile.gif
Maybe if I corrupt all the videos in Panzer I won't have to watch them every time I play the damn game
smile.gif


This gives me another idea too...
 
Well.. I can't see what I'm doing wrong with this encoding... so I hope someone figures out the right way to do the encodeing...
 
Success... =
happy.gif
= I tried using a smaller clip... and I actually replace the F3.CPK file on my Shining Force III CD... with a LEGO Media clip called... The Han Solo Affair... an it's running on my Modded Saturn just fine right now... video plays great.. no slow downs.. etc... has for audio.. it seems pretty good... it does lag a bit.. and get's pretty off near the end of the video.... and it's a bit hissy... but I think that's the AVI2CPK program.... if you use his CPK2AVI file.. and convert the F3.CPK file to AVI format... the audio is very very hissy... yet if I use acpk2avi a different CPK2AVI encoder... I get a prefect conversion of the audio... no hisses... so maybe we need a better AVI2CPK program... but this is a great start... I finally replace a different video on Shining Force III that I encoded... =
happy.gif
= I'll keep playing around with that larger 30 Minute file I have... maybe there is a filesize limit to this compression format...
 
Back
Top