PC Engine Region Lock via Hu6280, how does it work?

Discussion in 'PC Engine / Turbografx Discussion' started by hydr0x, Nov 25, 2015.

  1. hydr0x

    hydr0x Member

    Joined:
    Oct 23, 2015
    Messages:
    8
    Likes Received:
    0
    As this guide nicely explains, you can disable the region lock for HuCards quite easily. However, I'm wondering exactly how the region lock works.

    The mod guide (and some other sources) claim that it's the games which check the region of the console unit, and if it's not US, thus don't run. This would mean the PIN 29 mod makes the chip pretend it's US region (or the games actually do an inverse check: if not Japanese, run). The explanation for Klax in this case would be that it simply lacks the check for the console region. However, this would mean that every single US game besides Klax has a in-code checking routine for the system region. This seems unlikely and convoluted to me.

    Other sources (incl. Wikipedia) claim that, similar to Nintendo's CIC, it's actually the Japanese system which checks if the card has the right region (which would mean the card contains fixed region information in the header?), and if it doesn't, it won't run. Looking at PCE rom tools out there, this seems to be the case (speaks of a region byte). However, if it is, then what are the possible region "encodings". And how does Klax work? I see three possibilities, does anyone know which one it is?

    1) Klax region byte is actually set to Japanese. As the US systems don't check region, it works on both.
    2) Klax region byte is set to a special, global region, which the Japanese system allows on top of it's own Japanese region.
    3) There actually isn't a region byte per se in the sense that it stores region information, but rather a protected yes/no flag, which the Japanese system checks. It's set to "no" for Klax.

    I'm really curious which of these it is. Maybe I'd have to check some ROMs in a hex editor?!
     
  2. MottZilla

    MottZilla Champion of the Forum

    Joined:
    Feb 1, 2006
    Messages:
    5,066
    Likes Received:
    102
    The only region locks are:
    Many US games will not run on Japanese systems because they check a bit which is affected by the mentioned pin.
    Some pins on the HuCard are swapped around.

    Wikipedia is full of shit if they say it is like the CIC Nintendo used. If you own a TurboGrafx 16 or Turbo DUO console you can play JP games if you have an adapter to swap those pins back around. However you can't do that with a Japanese console to play US games because the software itself checks the region bit. So in order to use an adapter to play US cards on a JP system you will have to open the console to mess with that pin to change the region to US.

    I made a program awhile back that can patch US roms that have the lockout. Other programs exist too. It's really not at all complicated.

    Now Nintendo's CIC chips are very different and not solely meant as a regional lockout but as a copy protection/unlicensed game prevention measure.
     
  3. hydr0x

    hydr0x Member

    Joined:
    Oct 23, 2015
    Messages:
    8
    Likes Received:
    0
    Thanks :) But if it's that easy, are you sure you are patching away a check routine within the US game, and not rather a region identification section checked by the system? If the game contains code that checks the system region, I find it surprising that it's easy to identify and patch. What does your tool patch exactly?
     
  4. phoenixdownita

    phoenixdownita Spirited Member

    Joined:
    Apr 29, 2012
    Messages:
    160
    Likes Received:
    8
  5. MottZilla

    MottZilla Champion of the Forum

    Joined:
    Feb 1, 2006
    Messages:
    5,066
    Likes Received:
    102
    Why is it surprising? The SNES and Sega Genesis have the exact same situation with software regional lockouts which are easily patched. And yes, I'm sure because I'm familiar with the console and the family of CPU it uses. It is a software based check that prevents some US games from playing on a Japanese console. Other than that, it's just some swapped signals on the HuCards which can be overcome via an adapter.

    And no, the System does not check any region because the PC-Engine/Turbografx 16 does not have a BIOS program to do any check in that manner. I've already described how it works and phoenixdownita was great to link an old post that explains all this.

    Hopefully that all answers your questions.
     
  6. hydr0x

    hydr0x Member

    Joined:
    Oct 23, 2015
    Messages:
    8
    Likes Received:
    0
    Sorry for the late reply and thanks for the feedback.

    Uhm, no, they don't!? The SNES system checks whether the the inserted cart's CIC region matches the system's CIC. That's exactly the other way around compared to your PCE description, the system checks that the cartridge matches its expectations. There are some later games which additionally do the opposite check on top, that's true, but those are the exception, not the rule. Hence my question regarding the PCE. This is exactly what I'm wondering, whether the system checks the game or the other way around. BOTH ways could be circumvented with ROM patching, hence my earlier confusion regarding your replies.
     
  7. MottZilla

    MottZilla Champion of the Forum

    Joined:
    Feb 1, 2006
    Messages:
    5,066
    Likes Received:
    102
    The SNES does have a CIC in every game which is just ONE way that regional lockout is enforced. However SNES games can additionally have a software regional lockout check just like the TurboGrafx 16 games which I described to you.

    Back to the PCE/TurboGrafx 16. The "system" doesn't "check" anything. There is no BIOS or CIC type device in place. The regional lockout that prevents TurboGrafx 16 software from running on a PC-Engine is a *very* simple software check which reads a register and checks the status of a single bit. If this bit does not match what it wants, the program goes into a loop that never ends, and the game never begins.

    The bit that is checked is controlled by what is input on that particular pin of one of the main chips in the console. Obviously in Japanese consoles the pin is connected to I'm guessing Ground and for Turbo Grafx 16 and Turbo DUO consoles it's probably connected to +5v. I could have those backwards but the point is this is how the software can identify the system region.

    Enforcing this regional protection again is done all by the software (ROM) on the HuCard. Absolutely no Japanese HuCards do any regional checks to prevent games from running on a US console. Only US/TurboGrafx 16 games contain some program code to do this check. I've read but can't confirm that not all games contain the lockout code but from what I remember when looking at ROMs to make my patcher they all tend to use identical code for checking the region bit.

    I hope this solves your confusion. The short answer is on PC-Engine, the game program (ROM) of many US TurboGrafx 16 Hucards perform a software check to prevent playing those games on Japanese consoles. The only other mechanism in place regarding regional controls is that certain pins of the HuCard connector are swapped around between US and JP systems. That issue is solved easily with a converter.
     
  8. hydr0x

    hydr0x Member

    Joined:
    Oct 23, 2015
    Messages:
    8
    Likes Received:
    0
    I know, that's why I said later games do the opposite check. But, on the SNES (and other systems) this is the exception. That's why I was so surprised to learn that all the US PCE games use such a method. Thanks for the further clarification :)
     
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page