Time Crisis 3 PAL hack

CobOnTheCorn

New Challenger
Level 0
8%
Joined
Aug 28, 2025
Messages
2
Level up in
23 posts
Reaction score
2
Points
2
This is probably an extremely unconventional way to try and play a game, but I want to exhaust all my resources before I call it quits.

Time Crisis 3, among a few other PS2 Guncon 2 games, had backwards compatibility with the original PS1 Guncon, but this was made an exclusive feature for PAL territories. I can't recall if it's for every guncon game released in europe, but I know Ninja Assault was another instance of a Guncon 2 only game in the NTSC release having Guncon 1 support on the PAL release. Ideally, it would be nice if it was just a copy and past of those options and place them in the NTSC releases, but I know this stuff ain't that simple.

Closest I've gotten of being able to play TC3's PAL release has been through OPL and forcing it to run in NTSC. Mission accomplished right? I wouldn't be here if that were the case. Be it conversion programs or the settings within OPL, I cannot for the life of me find out how to reduce the vertical stretch applied to the PAL release. I've only been able to mitigate it by patching the ISO or using OPL to slightly center the screen. It's *soooo* close to being perfect, it's relatively playable, but the cropping to the top and bottom half of the screen removing either the weapon selection or health bar annoys me ever so greatly. It saddens me because the game plays great with a Guncon 1 and I forgot how much I enjoy Time Crisis 3 since the NTSC release demands you buy the Guncon 2 and while I see myself eventually owning one, I'd like to mitigate dropping cash just to play a game I'm so close to being able to play perfectly.

I guess I'm here to ask, where would I start to look into trying to modifying the game to fix the vertical screen stretch? Is it even possible? Are there any current programs I may have overlooked? I've tried Adrenaline patcher and V-Fix to no avail. They made the ISO's natively compatible with my PS2 without applying additional changes to the OPL settings, but the issue still persists. Any help or information is welcomed. I'm a noob to this sort of thing, but I love light gun games so any method to try and get TC3's to be playable on my current setup would be nice.
 
bkhle.png


In theory the data for the support for this Guncon 1 is probably in one of the common PS2 files. You can think that PS2 has standard library files like DLL files called "IRX" which may contain modified gamepad data in the related library file so if so it may be simple copy paste thingy to add this support to the NTSC version. Otherwise gotta check difference in the ELF file too. Technically if IRX file have to be replaced the ELF likely to be changed too because instead of calling whole IRX to be active it may call specific codes in the IRX file. If shit is not that simple the logic for this support may be outside of IRX and ELF, or these files are not enough to make a change and come to an happy ending. So significant codes for this support may be inside of codes for every level in the game or something like that.

Then it calls for Hex study of these files and see differences between PAL and NTSC versions. Hex programs usually have support for checking differences. I would recommend "imhex" among free Hex edit programs that even have Japanese character support so I use it to translate PS2 games (yet I suck hard at doing anything about how the game engine display text so usually text display rubbish lol). You may simply use 7zip to extract individual files from ISO. After modfying the file you may use USBUtil v2.00 to inject the files back. Actually I would recommend this very same program to extract but the program have a fundamental error so it can never extract any file unless you use the USBUtil v2.2 version but it has no English support.

If shit is not that simple you may have to use PCSX2's debugger to see what changes happens between this Guncon 1 and Guncon 2 to learn what codes the game use, and then you may enable logging for which part of the ISO the game access to learn the address of the code in the ISO to pin where these codes for Guncon 1 support is in the PAL version of the game by enabling it via Debug -> Enable CDVD Read Logging. And then it writes it to emulog.txt file in shell:Personal\PCSX2\logs (If you use Windows 10, otherwise the PCSX2 folder in your Documents or whatever related personal or config folder of whatever OS you using). However it doesn't give simple address for you to directly jump out to the imhex to directly go that location, you gotta calculate it:

For example this is the example access log of PCSX2:

[ 213.0183] DvdRead: Reading Sector 0718378 (016 Blocks of Size 2064) at Speed=4x(CAV) SpindleCtrl=83

So we learned where the data starts being read and the information log gives important to use this formula to calculate its address:

Byte Address = Starting Sector Number x Sector Size

So it says "size" of the sector is "2064" but PS2 ISO sector size is 2048. There is an extra 16 blocks added to that size but it doesn't matter, we gotta use our standard number 2048 for the calculation.

Then "reading sector" here means which sector has the lowest number when data being read so lowest means start of the data. Here it is "0718378".

The we add the numbers to our formula:

So we learned where the data starts being read and the information log gives important to use this formula to calculate its address:

Byte Address = 718378 x Sector 2048

Byte Address = 1.471.238.144 bytes

So we found the decimal address but in the Hex editor we see hexadecimal address so it gotta be converted.

Its calculation is rather simple. We take the decimal number and divide it by 16. We constantly divide the result of this calculation to 16 to the very end. If the number can be divided to 16 without any remainder we note a "0":

- 1471238144 / 16 = 91952384 -> 0

- 91952384 / 16 = 5747024 -> 0

- 5747024 / 16 = 359189 -> 0

- 359189 / 16 = 22449,3125 -> It wasn't divided properly to 16 so we have a left over 3125 here and it means we gotta find the difference between 359189 and 22449 x 16 (359.184) so 359189 - 359184 = 5. Here the remainder is 5 and since a remainder is less than 9 we always note the remainder as it is so here we note "5". So: 359189 / 16 = 22449,3125 -> 5

- 22449 / 16 = 1403,0625 -> 22449 - 22448 (1403x16) = 1 -> 1 < 9 -> 1

- 1403 / 16 = 87,6875 -> 1403 - 1392 (87x16) = 11. Now it is bigger than 9 but in the world of dexamical the value after 9 is A and then B... until the F and don't worry in this calculation the remainder cannot be bigger than 15 and if it did then it means there is a huge mistake so hold your wild horses and don't celebrate that you proved time travel is possible by just using mathematics, partner, yeeehawwwww lolol. So 11 means B. -> B

- 87 / 16 = 5,4375 -> 87 -80 = 7 -> 1<9 -> 7

- 5 / 16 = 0,3125. Since 0x16 is a 0 -> 5 - 0 -> 5<9 -> 5

Now to find the address we write down all these remainders in the order from the last one we found to the first:

-> 57B15000//

Easy peasy eggs are tasty!!!! Well this is how I simply find and extract music files from PS2 game ISO so this is how you can find any data you want by checking where a data you want being read.

poofpuuuf.gif
 
View attachment 120424

In theory the data for the support for this Guncon 1 is probably in one of the common PS2 files. You can think that PS2 has standard library files like DLL files called "IRX" which may contain modified gamepad data in the related library file so if so it may be simple copy paste thingy to add this support to the NTSC version. Otherwise gotta check difference in the ELF file too. Technically if IRX file have to be replaced the ELF likely to be changed too because instead of calling whole IRX to be active it may call specific codes in the IRX file. If shit is not that simple the logic for this support may be outside of IRX and ELF, or these files are not enough to make a change and come to an happy ending. So significant codes for this support may be inside of codes for every level in the game or something like that.

Then it calls for Hex study of these files and see differences between PAL and NTSC versions. Hex programs usually have support for checking differences. I would recommend "imhex" among free Hex edit programs that even have Japanese character support so I use it to translate PS2 games (yet I suck hard at doing anything about how the game engine display text so usually text display rubbish lol). You may simply use 7zip to extract individual files from ISO. After modfying the file you may use USBUtil v2.00 to inject the files back. Actually I would recommend this very same program to extract but the program have a fundamental error so it can never extract any file unless you use the USBUtil v2.2 version but it has no English support.

If shit is not that simple you may have to use PCSX2's debugger to see what changes happens between this Guncon 1 and Guncon 2 to learn what codes the game use, and then you may enable logging for which part of the ISO the game access to learn the address of the code in the ISO to pin where these codes for Guncon 1 support is in the PAL version of the game by enabling it via Debug -> Enable CDVD Read Logging. And then it writes it to emulog.txt file in shell:Personal\PCSX2\logs (If you use Windows 10, otherwise the PCSX2 folder in your Documents or whatever related personal or config folder of whatever OS you using). However it doesn't give simple address for you to directly jump out to the imhex to directly go that location, you gotta calculate it:

For example this is the example access log of PCSX2:

[ 213.0183] DvdRead: Reading Sector 0718378 (016 Blocks of Size 2064) at Speed=4x(CAV) SpindleCtrl=83

So we learned where the data starts being read and the information log gives important to use this formula to calculate its address:

Byte Address = Starting Sector Number x Sector Size

So it says "size" of the sector is "2064" but PS2 ISO sector size is 2048. There is an extra 16 blocks added to that size but it doesn't matter, we gotta use our standard number 2048 for the calculation.

Then "reading sector" here means which sector has the lowest number when data being read so lowest means start of the data. Here it is "0718378".

The we add the numbers to our formula:

So we learned where the data starts being read and the information log gives important to use this formula to calculate its address:

Byte Address = 718378 x Sector 2048

Byte Address = 1.471.238.144 bytes

So we found the decimal address but in the Hex editor we see hexadecimal address so it gotta be converted.

Its calculation is rather simple. We take the decimal number and divide it by 16. We constantly divide the result of this calculation to 16 to the very end. If the number can be divided to 16 without any remainder we note a "0":

- 1471238144 / 16 = 91952384 -> 0

- 91952384 / 16 = 5747024 -> 0

- 5747024 / 16 = 359189 -> 0

- 359189 / 16 = 22449,3125 -> It wasn't divided properly to 16 so we have a left over 3125 here and it means we gotta find the difference between 359189 and 22449 x 16 (359.184) so 359189 - 359184 = 5. Here the remainder is 5 and since a remainder is less than 9 we always note the remainder as it is so here we note "5". So: 359189 / 16 = 22449,3125 -> 5

- 22449 / 16 = 1403,0625 -> 22449 - 22448 (1403x16) = 1 -> 1 < 9 -> 1

- 1403 / 16 = 87,6875 -> 1403 - 1392 (87x16) = 11. Now it is bigger than 9 but in the world of dexamical the value after 9 is A and then B... until the F and don't worry in this calculation the remainder cannot be bigger than 15 and if it did then it means there is a huge mistake so hold your wild horses and don't celebrate that you proved time travel is possible by just using mathematics, partner, yeeehawwwww lolol. So 11 means B. -> B

- 87 / 16 = 5,4375 -> 87 -80 = 7 -> 1<9 -> 7

- 5 / 16 = 0,3125. Since 0x16 is a 0 -> 5 - 0 -> 5<9 -> 5

Now to find the address we write down all these remainders in the order from the last one we found to the first:

-> 57B15000//

Easy peasy eggs are tasty!!!! Well this is how I simply find and extract music files from PS2 game ISO so this is how you can find any data you want by checking where a data you want being read.

View attachment 120425
Genuinely wasn't expecting such an extensive rundown on the first response, I very much appreciate it. I don't have much experience with hex editing, but I'm curious to try and take a look. Out of curiosity, wouldn't there be a possibility that the EU release was a different revision that would have added the feature after the fact, or would that have been more effort to completely remove a feature like that as opposed to turning it off?
 
Genuinely wasn't expecting such an extensive rundown on the first response, I very much appreciate it. I don't have much experience with hex editing, but I'm curious to try and take a look. Out of curiosity, wouldn't there be a possibility that the EU release was a different revision that would have added the feature after the fact, or would that have been more effort to completely remove a feature like that as opposed to turning it off?
Honestly it can be anything because PAL one having that support and the NTSC version not having it is odd so you have no choice but to check it. I would check it myself if I had this Guncon stuff but all I can find are differences between the versions that I cannot test per se.

But due to region differences sometimes it means a significant difference in release dates, sometimes it does mean the later released region version has differences and bug fixes, and sometimes game can be significantly changed to adjust it for target region. Having no knowledge about light-gun culture (first and last light-gun game I played was Duck Hunt on me fake NES decades ago) so I can only make educated guess that if the company determined Europeans using Guncon 1 mostly over the 2nd one for various reason (if Guncon 2 wasn't sold in Europe or its sales were too less) they would realistically make a decision to add Guncon 1 support to Pal version of the game that NTSC version didn't have.

Then I checked the release dates on Wikipedia:
  • NA: October 21, 2003
  • EU: October 31, 2003
There is 10 days difference that PAL version is the newest one so it can say this support could be in the American version but then it wouldn't make sense for them to turn it off this support with a great exception. Company may made agreement to sell Guncon 2 in America so they would play evil for it lol. But then it can mean they had no such agreement for Europe. And then 10 day difference can mean the developers may have added the support in a few days in rush before the games were shipped. So then we do have to question why there is 10 days difference. Logically logistic reasons and all is common reason but in this case it may mean they needed few days delayed for Guncon 1 support and it delayed the released date for PAL region by 10 days. Then it likely means this support was absence in NTSC version but gotta check it.
 

Users who are viewing this thread

Connect with us

Support this Site

RGT relies on you to stay afloat. Help covering the site costs and get some pretty Level 7 perks too.

Featured Video

Latest Threads

Books You Read In School?

What are some books that you had to read in school?

I don't remember much from Elementary aside...
Read more

Game Art Topic. Screenshots welcome!

Post Game art that you like.

Screenshots welcome, I don't care where you get them, or if...
Read more

PS2 Covers

I got a bunch of Loose PS2 games that i got from a garage sale, nothing really that fancy BUT...
Read more

Whitch is the best Digimon game to start? (Without playing time stranger)

i wanted to play the most recent digimon game but unfortunately it costs 300 BRL, and i played a...
Read more

Online statistics

Members online
128
Guests online
266
Total visitors
394

Forum statistics

Threads
14,170
Messages
340,957
Members
888,642
Latest member
Somantri

Advertisers

Back
Top