• Rise from your gwave!

Multi-region saturn disks

Discussion in 'Saturn Dev' started by Quor, Mar 29, 2002.

  1. Quor

    Quor New Member

    I have a Japanese import game (Tama) and I was surprised to find that it would work in my US Saturn with no adaptor. So I looked at the boot sector on the disk. Well instead of just one letter, starting at byte 64 was the sequence: JTUBKAEL

    And starting at byte 3584 were eight corresponding messages:

    For JAPAN.


    For USA and CANADA.

    For BRAZIL.

    For KOREA.

    For ASIA PAL area.

    For EUROPE.


    So I decided to see if this would work on another import disk. First I added the other seven letters after the J at byte 64. Then I added the other seven strings after the "For JAPAN." (Yes, you have to do both.) Finally I noticed that there were a few bytes after the "For JAPAN." and I moved this to the end of the eight messages. (The game wouldn't boot without it.) And it worked perfectly. Yay.

    It seems like this would make the perfect all-region hack. Except when I tried this on another game (Princess Crown) there wasn't room for the other seven messages. There was a bunch of code following the "For JAPAN." You can still replace "JAPAN" with something else, but is there any way to do a universal region hack that will work with all games?
  2. slinga

    slinga Member

    I'm pretty sure you can use Satconv to do this to.
  3. mal

    mal Member

    Unless someone has added something to the Satconv source I don't think you can make games 'all regions'. You can remove additional regions, but not add them.

    Die Hard Trilogy and Virtua Racing are also 'universal'.
  4. Captian Crazy

    Captian Crazy New Member

    Intresting, I have orignals for both Die Hard Trilogy and Virtua Racing for saturn.
  5. Izlude

    Izlude New Member

    Seems you've found something interesting.

    I've quickly looked at this and maybe you're true.

    I'll continue to study that.

    In response to mal : did you see the source code of satconv ??? It seems that it was made quickly.

    Logic would like to change strings "For Japan....." or "For Taiwan..." (etc) by the apropriate string you have specified. Satconv doesn't made this change.
  6. CyberWarriorX

    CyberWarriorX New Member

    Because you don't really need to change that. Just changing the area symbols is fine.

    Cyber Warrior X
  7. Izlude

    Izlude New Member

    right........no comment. :)
  8. TakaIsSilly

    TakaIsSilly New Member

    Hnn... I'll give my humble opinion on this. If you use only _one_ country letter, the boot seems to ignore the "for something" string. That is not the case with several letters.

    My personal experience was Linkle Liver Story. I was unable to boot copies that had a ET country codes ("old" SatConv didn't deleted other letters, and the LLS rip that floats around must be a HK version, since it carried a UT country code and a "For TAIWAN and PHILIPINES"). I ended up reverse-engennering SatConv, and making TSatC, my own patcher, that "correctly" pached ISO's to my understanding, since it booted LLS, and all was well with the world :p

    In the light of the given event, I would figure that there is extra code where it expects the letters to be in a given _order_, given by the strings down there, or vice versa. I really don't see why they would have done that, and honestly, my poor 4x burner is not up to the task of burning a CDRW times enough to check my theory. If someone has the time, go ahead ^^;
  9. ExCyber

    ExCyber Staff Member

    I'm not 100% sure, but it seems that "JTUBKAEL" is the One True Order, as that's also what's in the Action Replay 4M Plus carts.
  10. TakaIsSilly

    TakaIsSilly New Member

    Question here is: why does it need the extra patch (if it really does)? We all know SatConv works, and it doesn't touch it, so I assume there are, at least, 2 possible cases covered in the boot sequence.
  11. ExCyber

    ExCyber Staff Member

    Hmm, I was thinking that maybe the BIOS calculates the entry vector of the AIP ("application initial program", the potentially game-specific part of the bootstrap) based on the number of area symbols, but if that was true I think LLS wouldn't work by deleting the additional symbol if it was normally there...
  12. RadSil

    RadSil New Member

    That's the order they're given in Sega's docs.
  13. Quor

    Quor New Member

    Yes, you do need to change both. I tried just changing the letters and it didn't work. Wasted a CDR because of that...

    TakaIsSilly: I don't know where you got your copy of Linkle Liver Story but I just checked an original import disc of this game from Japan, and it has the JT (japan/taiwan) country codes.
  14. TakaIsSilly

    TakaIsSilly New Member

    Hn... it was a rip that was floating around here 2 years ago... maybe it was JT (al least it would make sense given the "magical order")... But just to check, it _does_ say "For TAIWAN and PHILIPINES", right?

    Anyway, we seems to arive at an agrement here:

    1) If there is only one letter in the country code, the game will boot, if the machine is correctly localized. The "For ..." stuff is ignored.

    2) If there is a "JTUBKAEL" code, the game _needs_ The whole 8 "For" strings.

    3) Finnaly, if there is a "short" code like "JT" it seems to jam when changed to a "ET"...

    Maybe the awnser is in the LLS "short" format...
  15. antime

    antime Extra Hard Mid Boss

    Sega Technical Bulletin #SOA-12 says that..

    "In the IP.BIN file, at address 40H, all games must have the appropriate area symbols for the region in which the game is to be released, along with the corresponding area code at address E00H. [..] Please make sure that the area symbols and area codes match in order [..]"

    Technical bulletin #11 contains some details about the system id and #31 says that the KBAL area codes were deprecated.
  16. ExCyber

    ExCyber Staff Member

    Okay, I think the problem with a "universal" patch for Saturn discs is that some games will need the AIP relocated in order to make it work. This could lead to problems similar to those with scdconv, though I think SuperH lends itself more to relocatable code than 68000 does...

Share This Page