Forum: PS2 Linux - Show your penguin pride. Discuss PS2 Linux (Official kit and Blackrhino) here!


The above video goes away if you are a member and logged in, so log in now!




 
Would you like to get all the new info from
PSX-Scene in your email each day?




Want to learn more about the team keeping you up to date with the latest scene news?

Read about them now!

Check out our Developer bios, too!

 


User Tag List

Thread: How to determine console region and default video mode
  

Page 1 of 3 1 2 3 LastLast
Results 1 to 10 of 22
  1. #1 How to determine console region and default video mode 
    l_oliveira's Avatar
    l_oliveira is offline V0 - V4 Addict
    Join Date
    Dec 2002
    Location
    Brasilia, Brazil
    Posts
    1,794
    Downloads
    18
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    11
    Likes Received
    60
    While you're still running the PS2 game kernel you should be able to use the ROMVER file (from the PS2 ROMDIR) to automatically figure out the region of the console the application is running in. It's a text file with the version string for the console ROM:

    Code:
    Some info about ROMVER strings:
    
    VVVVRTYYYYMMDD  Unit Model
    
    V=Version
    R= Region
    
    • J=Japan (2, NTSC)
    • A=America (1, NTSC)
    • E=Europe (2, PAL )
    • O=Oceania (4, PAL )
    • H=Hong Kong (3, PAL?)
    • R=Russia (5, PAL )
    • M=Mexico/L.A. (4, NTSC)
    • X=No DVD Region/DEV
    T= Type
    • C=CEX (Consumer/Retail)
    • D=DEV (Debugstation or PS2 programmer TOOL)
    YYYYMMDD Date in ISO format. Ancient FATs: 0100JC20000117 SCPH-10000 *1 *3 0101JC20000217 SCPH-10000/15000 *1 *3 0120JC20001027 SCPH-18000 *3 0120JC20001027 SCPH-18000 *3 Old FATs: 0110AC20000727 SCPH-30001 0120AC20000902 SCPH-30001 0120AC20000902 SCPH-30001 0150AC20001228 SCPH-30001 0160HC20010730 SCPH-30006 0160JC20010427 SCPH-30000 0160AC20011004 SCPH-30001 Newer FATs: 0170AC20030325 SCPH-50001 0190AC20030623 SCPH-50001 Slim: 0200AC20040614 SCPH-70012 0220AC20050620 SCPH-75001 0220AC20060905 SCPH-79001 0220HC20060905 SCPH-90006 0230AC20080220 SCPH-90001 (No FMCB) ODD Stuff: 0180JC20031028 DESR-50000 (PSX) *4 0101XD20000224 DTL-H10000 (DEV) *1 *2 *3 *1- Early protokernel units with buggy LoadExec PS2 game Kernel. *2- Debugstation (Debug/TEST PS2) The X means it has no DVD Video region and because of that, cannot read DVD-Video disc. *3- PCMCIA type DEV9 bus. *4- Digital Video Recorder PS2.
    Hope this helps...
    SCPH-10000_GH-001 SCPH-15000_GH-003 SCPH-18000_GH-008 SCPH-30001_GH-005 SCPH-30000_GH-016(V4) SCPH-30001_GH-010(V4)
    2xSCPH-10190, 2xSCPH-10350, 2xSCPH-10280
    "**** j0 hackers!"
    -Sjeep (As seen on TOXIC OS ELF...)
    Reply With Quote  

  2. #2  
    dlanor is offline Member
    Join Date
    Sep 2004
    Location
    Sweden
    Posts
    10,107
    Downloads
    5
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    2 Thread(s)
    Likes Given
    0
    Likes Received
    126
    Quote Originally Posted by l_oliveira View Post
    While you're still running the PS2 game kernel you should be able to use the ROMVER file (from the PS2 ROMDIR) to automatically figure out the region of the console the application is running in. It's a text file with the version string for the console ROM:

    [CODE]Some info about ROMVER strings:

    VVVVRTYYYYMMDD Unit Model

    V=Version
    R= Region
    Sorry, but I think you are misinterpreting the ROMVER region info, confusing it with one of the other region systems of the PS2 (I think it has three distinct region systems).

    The 'R' entry in the ROMVER string does not show the specific region of any console, but only the regional type of the the standard TV system for that region, as used to choose the active video mode of the PS2.

    So to my knowledge there are only three possible values for that fifth character of the ROMVER string, these values being

    "A" == Any region using NTSC-U/C TV standard
    "E" == Any region using PAL TV standard
    "J" == Any region using NTSC-J TV standard

    I've only been able to check this myself with a very limited set of bioses, but I have reason to believe that this is how it works. (This is also the reason why all good homebrews check for PAL/NTSC use simply by testing that fifth ROMVER character and comparing it to an 'E'.)

    The above is the simplest of the three region systems of the PS2.

    The second and third regions systems are partly intervowen, as they relate to the DVD-Video release regions and the regional system used for signing and encryption of Sony KELF files (such as those involved in FMCB and the HDD OSD stuff you've worked on).

    In FMCB work we usually identify the needs of a console based on the final two digits of its product code, which relate to the KELF files needed (from a slim PS2) as follows:

    ----- start of region info for FMCB -----
    DVDPLA = xxx05, xxx06, xxx07 (NTSC J,All Asia under DVD region 3)
    DVDPLC = xxx09 (NTSC J,DVD region 6, Continental China only)
    DVDPLE = xxx03, xxx04 (PAL DVD region 2)
    DVDPLJ = xxx00 (NTSC J, Region 2)
    DVDPLM = xxx11, xxx10 (NTSC U/C DVD Region 4 Mexico/Latin America)
    DVDPLO = xxx02 (PAL DVD Region 4)
    DVDPLR = xxx08 (PAL DVD Region 5)
    DVDPLU = xxx01, xxx12 (NTSC U/C DVD Region 1)

    The region for Middle East is DVD region 5 so they will probably be using the Russian console or a variation of it.
    ----- end of region info for FMCB -----

    Best regards: dlanor
    Reply With Quote  

  3. #3  
    l_oliveira's Avatar
    l_oliveira is offline V0 - V4 Addict
    Join Date
    Dec 2002
    Location
    Brasilia, Brazil
    Posts
    1,794
    Downloads
    18
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    11
    Likes Received
    60
    Quote Originally Posted by dlanor View Post
    Sorry, but I think you are misinterpreting the ROMVER region info, confusing it with one of the other region systems of the PS2 (I think it has three distinct region systems).

    "A" == Any region using NTSC-U/C TV standard
    "E" == Any region using PAL TV standard
    "J" == Any region using NTSC-J TV standard


    Best regards: dlanor
    There's "H" on all x0006 consoles at that position.
    You're assuming that because it only exists A,E and J for the memorycard folder names only these letters exist on the ROMVER. DEV machines have "X" on that postion and I even listed two HK PS2 ROMVER strings on the list.

    The Hong Kong consoles use "A" for their MC folders but the ROMVER string has "H" on it. Don't be surprised if homebrewn behave odd on Korean, Russian or Chinese consoles, because the people making the code s making such assumptions.

    THE ROMVER is not meant to tell the software just the video region, it is used by SONY internally to decide if it has to swap O and X buttons too.

    I only agree with you that only "JEA" are valid on BREXEC/BRDATA (R as REGION, like SONY itself calls it) as memory card folder names. There's way more "regions" than just 3.

    You can safely use the ROMVER string to check the DVD region as an Oceania console will have an "O" at the R position on ROMVER, just like the Hong Kong one had an "H" and the Japanese one has an "J".

    Did you expect the Hong Kong one to have an "A" on ROMVER because it uses BADATA-SYSTEM/BAEXEC-SYSTEM as memory card folders ?
    SCPH-10000_GH-001 SCPH-15000_GH-003 SCPH-18000_GH-008 SCPH-30001_GH-005 SCPH-30000_GH-016(V4) SCPH-30001_GH-010(V4)
    2xSCPH-10190, 2xSCPH-10350, 2xSCPH-10280
    "**** j0 hackers!"
    -Sjeep (As seen on TOXIC OS ELF...)
    Reply With Quote  

  4. #4  
    dlanor is offline Member
    Join Date
    Sep 2004
    Location
    Sweden
    Posts
    10,107
    Downloads
    5
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    2 Thread(s)
    Likes Given
    0
    Likes Received
    126
    Quote Originally Posted by l_oliveira View Post
    There's "H" on all x0006 consoles at that position.
    You're assuming that because it only exists A,E and J for the memorycard folder names
    No. That is not my reason.

    In fact I have two reasons, one being that some of what I have seen in bioses does not match what you describe.

    But at the same time I freely admit that I do not have access to as many consoles as you must do in your repairs shop. But I also assume that the number of regions used by your customers must be quite limited too, as very few people tend to import consoles from far off regions.

    My other reason is of course the long established usage of relying only on an identified "E" in ROMVER[4] to indicate PAL video mode, in all existing homebrew libs since the beginning of time. Possibly that usage is 100% wrong like you say, but then I would like to see some further confirmation of it, since it does mean that ALL software I ever wrote for the PS2 now needs to be repaired as that aspect of of those programs is apparently broken.

    And the same also applies to all other PS2 homebrew software that I am aware of existing.
    It is all broken, unable to choose correct video mode for many regions, if the ROMVER string is defined as you say.

    only these letters exist on the ROMVER. DEV machines have "X" on that postion and I even listed two HK PS2 ROMVER strings on the list.

    The Hong Kong consoles use "A" for their MC folders but the ROMVER string has "H" on it.
    Perhaps you are correct for some consoles, but I have seen a bios for an SCPH-90006 console with a ROMVER string of "0220JC20060905", which according to your info should only be possible for an SCPH-90000 console.

    Don't be surprised if homebrewn behave odd on Korean, Russian or Chinese consoles, because the people making the code s making such assumptions.
    I wouldn't be surprised by any variations and inconsistencies in the ROMVER usage nor in homebrew behaviour because of such variations, but I still don't think it is quite as you describe it.

    In fact I may have to increase the number of region systems I stated as being used by the PS2 from three distinct ones to four. Two of these have only a few large regions while two of them have a larger number of smaller regions. The latter being the DVD-Video regions and the product code regions, with partial overlap of course.

    THE ROMVER is not meant to tell the software just the video region, it is used by SONY internally to decide if it has to swap O and X buttons too.
    Anything that hints at the region can obviously be taken to imply the button usage as well, but if that really is supposed to be a major purpose of that letter I'd like to see a Sony specification saying so... In any case the entire western world now uses the same button conventions as the US region, so there aren't many opportunities for confusion on that score.

    I only agree with you that only "JEA" are valid on BREXEC/BRDATA (R as REGION, like SONY itself calls it) as memory card folder names.
    But that is wrong. That folder letter for the japanese region is "I", not "J".

    There's way more "regions" than just 3.
    Of course there are, in some of the region systems implemented.
    That is why I stated that there are several different ones.

    You may very well be right in that the ROMVER region letter has other values than I have seen in my very limited access to various bioses. But I can't accept your description as valid either, when it contradicts some things I have seen. Quite likely this confusion is due to inconsistent usage by Sony. (Possibly changing the usage over the years.)

    You can safely use the ROMVER string to check the DVD region as an Oceania console will have an "O" at the R position on ROMVER, just like the Hong Kong one had an "H" and the Japanese one has an "J".
    OK, I can't argue about Oceania, as I never saw anything from that region, nor from several of the others.

    Did you expect the Hong Kong one to have an "A" on ROMVER because it uses BADATA-SYSTEM/BAEXEC-SYSTEM as memory card folders ?
    No of course not. I expected a "J" partly because I have seen it in such a ROMVER string and partly because it makes sense as a single-letter abbreviation for the NTSC-J video system. Just like "A" makes sense for NTSC-U/C (USA+Canada == north America) and like "E" makes sense for PAL (main PAL region is Europe).

    Such was my reasoning, though I admit it may have been based on insufficient information, due to my lack of access to consoles of most regions.


    But if you have seen BIOSes with ROMVER strings having a wide variety beyond those standards then I can't argue with that, as I have no access to such bioses myself.

    I don't claim to have the definitive truth on this matter myself. I know that I don't.
    I just don't think it can be quite as you described it, at least not consistently applied.

    But at this point it would be nice if other forum members, with access to consoles from less 'common' regions could report what ROMVER strings they see (easily checked by uLE and its "Debug Info" command). We obviously don't need any reports for the standard strings of US, Europe and Japan (xxx01, xxx12, xxx03, xxx04, xxx00), unless the string content is different from what's already been agreed on (and for those regions we do agree). But contents for any other regions could be quite interesting, especially if there are any differing alternatives for the same product code region.

    Since this is a very international forum, we could get results from all over the world here.

    Best regards: dlanor
    Reply With Quote  

  5. #5  
    l_oliveira's Avatar
    l_oliveira is offline V0 - V4 Addict
    Join Date
    Dec 2002
    Location
    Brasilia, Brazil
    Posts
    1,794
    Downloads
    18
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    11
    Likes Received
    60
    Well... I did dig around the web for odd PS BIOS files and I found these:


    0190CC20030623 SCPH-50009 (Mainland China)
    0170JC20030206 SCPH-50000
    0200HC20040614 SCPH-70006 (Hong Kong)
    0200EC20040614 SCPH-70008 (Russia ?) Yeah, this one has "E" on it's version string but the HK and Chinese are still odd...

    I'm still looking for an Oceania ROM to dissect.

    And when I said "J" I really meant "J" because they never use "I" on the ROMVER string. But yes you're correct as "J" on ROMVER implies that the folders will be BIEXEC/BIDATA, etc ...

    Now, does the current scheme works because assume that because there's an "E" at that spot it's PAL and anything else it treats as NTSC ? What you think about it ?
    Is China NTSC ?

    Does anyone care about this ?
    SCPH-10000_GH-001 SCPH-15000_GH-003 SCPH-18000_GH-008 SCPH-30001_GH-005 SCPH-30000_GH-016(V4) SCPH-30001_GH-010(V4)
    2xSCPH-10190, 2xSCPH-10350, 2xSCPH-10280
    "**** j0 hackers!"
    -Sjeep (As seen on TOXIC OS ELF...)
    Reply With Quote  

  6. #6  
    dlanor is offline Member
    Join Date
    Sep 2004
    Location
    Sweden
    Posts
    10,107
    Downloads
    5
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    2 Thread(s)
    Likes Given
    0
    Likes Received
    126
    Quote Originally Posted by l_oliveira View Post
    Well... I did dig around the web for odd PS BIOS files and I found these:

    0190CC20030623 SCPH-50009 (Mainland China)
    0170JC20030206 SCPH-50000
    0200HC20040614 SCPH-70006 (Hong Kong)
    0200EC20040614 SCPH-70008 (Russia ?) Yeah, this one has "E" on it's version string but the HK and Chinese are still odd...
    Well the hongkong and china results seem to confirm your theory, except that you never specified any letter for china. But the principle is the same as it shows a separate letter for the region, not for the video system.

    But then we have that Russian console (and yes, that product code does mean russia) which confirms my theory, as it indicates that russia has PAL, just like Europe does.

    On the other hand, other sources claim that Russia really has a SECAM standard, which while similar to PAL in sync timing is not the same when it comes to broadcast modulation.

    And regardless of the interpretation, this in itself kills the idea of using that letter to identify a specific region either geographically or DVD-region-wise, since there is a huge difference between western Europe and Russia both ways.

    Now, does the current scheme works because assume that because there's an "E" at that spot it's PAL and anything else it treats as NTSC ? What you think about it ?
    Well, that should work for russia, as their old system has PAL-compatible timing, and in the long term I'd expect future sets there to include full PAL-compatibility anyway.

    Is China NTSC ?
    No. According to my information they have something called PAL D/K, which is different from and incompatible to PAL B/G and I signals only when it comes to the broadcasting modulation (Video bandwidth and sound carrier frequency). But judging by the other specs the composite signal used could well be identical to what we use in western europe (same colour carrier and sync rates).

    So for all practical purposes they should be better of with a PAL signal than with an NTSC signal, just like russia. In fact the PAL D/K standard of china looks identical to the SECAM D/K standards of russia (probably differ just in some broadcasting frequencies and modulation methods).

    Does anyone care about this ?
    I'm not sure, but other homebrew programmers SHOULD care about it, if they want their programs to display correctly in other regions than their own (and other than the 'well known' ones as discussed above).

    For example, it is very clear from the ROMVER data you quoted that most PS2 homebrews will start up in NTSC on those chinese consoles thus using 60Hz VSync, even though the users might have old PAL-D/K CRT TV sets incapable of syncing that much faster than 50Hz.

    In any case, if people dislike our discussing this here we can always move it to an independent thread. (I'm not sure if I can do that myself though, as a regular moderator, or if it takes an admin to do it.)

    Edit:
    I just split these posts off to a thread of their own, so we no longer obscure the main topic of that kernel-loader thread.

    Best regards: dlanor
    Reply With Quote  

  7. #7  
    Mega Man's Avatar
    Mega Man is offline Member
    Join Date
    Jan 2010
    Location
    Germany
    Posts
    519
    Downloads
    0
    Uploads
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    5
    Likes Received
    35
    In previous versions of kernelloader I tried to use the letter from ROMVER, but this failed in Australia (Oceanic). Then I used the letter from the NVM by using the call sceCdReadNVM() (see log http://kernelloader.cvs.sourceforge....der.c?view=log). In pcsx2 this call failed with v12 BIOS. The call is also not working with my native SCPH-50004, but there it is not required to detect the region. The used CDVDMAN module is not changed between the not working SCPH-50004 and the working SCPH-77004. The backup loader must use the same feature and nobody seems to complain about such an error, so they found a way to get around this problem.
    Reply With Quote  

  8. #8  
    dlanor is offline Member
    Join Date
    Sep 2004
    Location
    Sweden
    Posts
    10,107
    Downloads
    5
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    2 Thread(s)
    Likes Given
    0
    Likes Received
    126
    Quote Originally Posted by Mega Man View Post
    In previous versions of kernelloader I tried to use the letter from ROMVER, but this failed in Australia (Oceanic). Then I used the letter from the NVM by using the call sceCdReadNVM() (see log http://kernelloader.cvs.sourceforge....der.c?view=log). In pcsx2 this call failed with v12 BIOS. The call is also not working with my native SCPH-50004, but there it is not required to detect the region. The used CDVDMAN module is not changed between the not working SCPH-50004 and the working SCPH-77004. The backup loader must use the same feature and nobody seems to complain about such an error, so they found a way to get around this problem.
    However, all of that still leaves the question open and unanswered as to how we can correctly deduce the default video mode of any console on which our homebrew software is running.

    I suppose the only truly valid method is to dig up the real SCPH product code of the console, and then use the value of its final two digits as an index into a region lookup table. And the resulting truly correct region code can then be used as an index into a lookup table for the video mode to be used, or for any other region-dependent characteristic (button usage etc).

    But then the question is where we find that product code. I know it's in there somewhere, as it is displayed by the Sony browser, for its 'Version' command, so we just need to know where to look for it.

    Checking in bios dumps I only find one obscure (non-string) occurrence of "SCPH-" in rom0, but that is not in a string, and is not followed by ascii digits.
    Edit:
    Except in the oldest bios versions (not sure of all) where the SCPH-xxxxx string does seem accessible in 'straight' form inside the main ROM.


    There is a proper reference to the product code in the nvm file though, but I'm not sure how/if it can be accessed on all PS2 models. But it is definitely present in every dump I made myself, for my v7, v15, and v18 consoles. So I don't understand why it would be missing in your v12 attempts, but perhaps it was something else you were looking for there... (you did mention a letter again, and not the product code like I want).

    If we can design a definite method of accessing the product code, such that it works on every existing PS2 model, this should solve the problem once and for all.

    Best regards: dlanor
    Last edited by dlanor; 06-28-2010 at 12:51 AM.
    Reply With Quote  

  9. #9  
    l_oliveira's Avatar
    l_oliveira is offline V0 - V4 Addict
    Join Date
    Dec 2002
    Location
    Brasilia, Brazil
    Posts
    1,794
    Downloads
    18
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    11
    Likes Received
    60
    I think SONY has the only proper way of detecting the console region:

    Query the Mechacon version from hardware registers through the CD/DVD drive DSP I/O on the IOP address space...

    They use that check on the dnasload kelf which is used to boot official HDD games like PlayOnline/FFXI. I'll ask the guy who reversed BishiBashi Special dnasload kelf the details regarding this.
    SCPH-10000_GH-001 SCPH-15000_GH-003 SCPH-18000_GH-008 SCPH-30001_GH-005 SCPH-30000_GH-016(V4) SCPH-30001_GH-010(V4)
    2xSCPH-10190, 2xSCPH-10350, 2xSCPH-10280
    "**** j0 hackers!"
    -Sjeep (As seen on TOXIC OS ELF...)
    Reply With Quote  

  10. #10  
    dlanor is offline Member
    Join Date
    Sep 2004
    Location
    Sweden
    Posts
    10,107
    Downloads
    5
    Uploads
    0
    Mentioned
    1 Post(s)
    Tagged
    2 Thread(s)
    Likes Given
    0
    Likes Received
    126
    Quote Originally Posted by l_oliveira View Post
    I think SONY has the only proper way of detecting the console region:

    Query the Mechacon version from hardware registers through the CD/DVD drive DSP I/O on the IOP address space...
    And how sure are you that the Mechacon version is unique for each relevant PS2 region... ?
    I suspect this just leads into further complexities.

    We do know how to correlate the SCPH-xxxxx product code to every region relevancy we may need. So all we really need to know is a valid method of extracting that product code.

    In all late versions (certainly v7 and on anyway), the product code should be accessible in NVM, and the really old versions which have the product code string directly inside the bios ROM instead can be identified as such old versions from the bios version number in the ROMVER string.

    So checking that should allow us to choose between two different methods of extracting the product code. One valid for the really old consoles getting it from the ROM, and another valid for the newer consoles getting it from the NVM.

    They use that check on the dnasload kelf which is used to boot official HDD games like PlayOnline/FFXI. I'll ask the guy who reversed BishiBashi Special dnasload kelf the details regarding this.
    I'm sure this was very useful for those specialized purposes they used it for. But I am not at all sure that this matches our present needs.

    We are not dealing with the booting of KELFs here, but merely with the identification of proper regional standards for video modes and other homebrew purposes.

    The methods you spoke of are probably interesting and useful for other things, such as your HDD OSDSYS experiments, but IMO they have little to do with the problem we discussed here, and would only add complications to what should be a simple region test.

    Best regards: dlanor
    Reply With Quote  

Page 1 of 3 1 2 3 LastLast
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •