Tonyhax International

PS1 Tonyhax International: Backup Loader For All Japanese, USA, and PAL PS1 Consoles/Early PS2 Consoles v1.6.3

Ah, can't wait for my resource update to be approved. And I'm glad the sites back up! Was down for a bit... man besides gbatemp this is it forum wise now for this topic. I consider psx.dev dead (it kinda has been for years, been so heavily botted by google crawlers or whatever they couldn't afford the traffic) and the drama that happened there between the higher ups... I'm just glad psx-place exists.I hate reddit so much, forums4ever.

On a side note, I (accidentally?) might have reverse engineered a piece of software I've been wanting to know how it works for years... See there is this thing called Modpar: https://consolecopyworld.com/psx/psx_utils_pn_cnv.shtml (beware if you don't use an ad blocker).

This is the tool that almost ALL of the codes found here: https://consolecopyworld.com/psx/psx_game_codes.shtml where generated from.

Now whats insane is I started working on anti-piracy patch/code generation tools in 2022: https://github.com/alex-free/aprip/releases/tag/v1.0

Me and MottZilla came up with various ways to 'generate' either GameShark codes to bypass protections, or make disc image patches. All unique to our own bypass 'methods' we came up with, that worked with varying success.

Now I noticed when initially making the Tonyhax International anti-piracy bypass system (which is powered by a custom gameshark engine as well as exe writes to loaded exes) that a TON of the codes I found on consolecopyworld looked very similar... I wondered what method they used....

Then one day a few years ago I found out about modpar and was like oh this is how they were doing it. The fun thing about modpar is it's dos watcom executable with no source, You have to run it in Dosbox or it doesn't run at all. And that is... a nightmare for bulk adding games. I never really used it because by time I figured out it existed I had either already added every game consolecopyworld had codes for or I had found a superior bypass developed by myself (less codes/skips portection entirely/works on soft-mods, that's the thing about modpar is it does not guarantee the code will work on soft-mods, just non-stealth dumb mod-chips because well soft-mods were not a thing then)....

So then I have to figure out 2 new obscure Japanese games to add support for Tonyhax International which have no existing bypass codes or anything really online at all, and I think I just figured out how it worked... I can make 'force test commands ok' codes with just a ram dump, and I already made my own 'soft-mod' backdoor trick that has never failed to work on every single game i've encountered, and it's just because I noticed a pattern in a hex editor.

Also same with this insane 'PAL BIOS protection' measure some Japanese games use to block PAL users from playing japanese games on even stealth chipped consoles, which AFAICT I am the only person to find/fix.

Big things to come, I think APv2 is dead :)

Fun fact, the reason 'Fake PAL BIOS protection bypass' ( a trick to disable anti-piracy on Japanese and USA consoles) was discovered and the ' PAL BIOS protection bypass' (a method to disable anti-piracy when a PAL console is detected for some Japanese games) was is the same one…

I noticed testing games for anti-piracy protection that socram8888 (original Tonyhax dev) was missing some games/couldnt detect the ones I could that had anti-piracy. So I figured out because he has a PAL console and is based in Italy IIRC he was using a PAL BIOS in the same emulators as I… and I tested it. Lo and behold some games with anti-piracy protection (USA/japanese ones that is) when detecting a PAL BIOS would disable the anti-piracy protection entirely. Like skip it completely. This is great for soft-mods because it doesn't even run the 'soft-mod' check (retroactively named by myself, more of like a swap trick check back in the day but more on that later) AND it doesn't check for non-stealth dumb chips either on only PAL consoles.

So me and @MottZilla came up with a way to fake detecting a PAL BIOS. That made the same behavior happen on real Japanese and USA consoles and games.

Now when I would try this on new games (we have way more bypasses then consolecopyworld ever had and more advanced too) sometimes it wouldn't work and sometimes it would. It's great when you can just run a ram dump in a c generator program and have it give you bypass GameShark codes for sure.

But then we ran into 2 different games where not only did it not bypass (ok… happened with some other games too) but it locked the game! So then I tried with just a stock boot, PAL BIOS in the 2 emulators I trust/use to make this all a reality, an old version of duckstation and the latest no $ PSX emulator. Low and behold if you give these a PAL BIOS with
i-mode mo Issho: Doko Demo Issho Tsuika Disc http://redump.org/disc/20321/
or Koneko mo Issho http://redump.org/disc/6329/ they lock up! Not so with a Japanese or USA bios! They do the literal opposite.

So me and @MottZilla 's bypass does the same… do the exact opposite. For these 2 games fake a non-pal bios… Of course these didn't skip the protection tho, so basically fake non-PAL BIOS, fake out test commands detecting dumb non-stealth mod-chip, fake out out soft-mod protection, and your done!

last game (so now 3 with 'PAL BIOS Protection') was a bit tricky with how soon it checked it, this was Addie no Okurimono - To Moze from Addie: http://redump.org/disc/8373/ . And because our GameShark engine kinda starts once vsync is set and this one was waiting until it passed PAL BIOS check from what I understand it didn't work until I tried myself just directly overwriting the exe with code that would change it after it was loaded but before executed… whatever it works that way and one less thing running every interrupt.

but just the amount of things I've found by accident with this console and scene blows my mind.

BTW Og tonyhax issue here: https://github.com/socram8888/tonyhax/issues/154

Seems every other weird thing I found to increase compatibility has been included in main tonyhax (in the scope of making them work on USA and pal consoles for the most part)… once reported. Not selling Tonyhax International short at all. I dog-food my software and there's a ton of reasons I think it is superior especially feature wise, but I'm glad I can let socram8888 know what I find and he includes it/comments on it so we can help move the whole scene together. It's really not as much as a completion as I sometimes make my docs out to be. We just have different goals.

back in 2022 I was trying to merge the original Japanese support into it, but now it makes even more sense why it should be how it is ;)
 
Last edited:
Imagine not using your own software! I've only used tonyhax international since 2022, same with literally everything else I do. I find bugs I fix them. I find annoyances improve the ux. Because I'm a user… seriously i make software for myself and share it with you all. That's it. And I want to thank everyone for getting us to SEVENTY-FIVE STARS on GitHub. That's massive. I don't do no crazy seo stuff either.zero huge YouTuber shoutouts, idc. Because again I saw something I wanted and it didn't exist so I made it! I will fight anyone tooth and nail I why this is this is the best softmod for psx everyday.
 
alexfree updated Tonyhax International with a new update entry:

Tonyhax International v1.6.2 (3/21/2026)

Changes:
Reverted ps1packer to commit f264aa053095f949e4b16ae40a64dd6cff9ac04b, fixing save game exploits and gshax entrypoints that were not working in v1.6.0 and v1.6.1.
Added save game exploit for No Fear Downhill Mountain Bike Racing thanks to @ChampionLeake.
Enabled 80 Minute Assist for all consoles, to help boot 80 Minute CD-Rs better.

Read the rest of this update entry...
 
Do you have a writeup anywhere on 80 minute assist? Very curious to hear how it works.

Also, I made a bug report thread awhile back and @'d you on it, but I didn't see a response so I wonder if you missed it. Pasting it here in your thread:

TonyHax Intl version: 1.5.9 w/ FreePSXBoot
Memory Card: MemCardPro (not memcardpro2)
Controller: NeGcon NPC-104
Software: Gran Turismo 2 (NTSC-U v1.0)
Console: SCPH-1001
Bios: v2.2

Loading a Gran Turismo 2 romhack, I was perplexed that my save file wasn't loading. I assumed it was an issue with either the romhack or the MemcardPro, but eventually narrowed it down the NeGcon controller I was using.

When the NeGcon is plugged in, TonyHax International does not recognize that I have a GameID-compatible memory card installed. The "REMOVE THE FREEPSXBOOT MEMORY CARD" message displays at the top of the screen, and GameID info is never sent to the memory card. If I use a DualShock or standard PSX gamepad during boot, TonyHax International and the MemCardPro function as expected.

https://github.com/alex-free/tonyhax/issues/77 This bug report seems to be the same bug as what I'm experiencing. Obviously switching controllers is a minor inconvenience that I'm willing to put up with, but if there's anything I can do to help you iron the bug out altogether, give me a shout.
 
Do you have a writeup anywhere on 80 minute assist? Very curious to hear how it works.

Also, I made a bug report thread awhile back and @'d you on it, but I didn't see a response so I wonder if you missed it. Pasting it here in your thread:

TonyHax Intl version: 1.5.9 w/ FreePSXBoot
Memory Card: MemCardPro (not memcardpro2)
Controller: NeGcon NPC-104
Software: Gran Turismo 2 (NTSC-U v1.0)
Console: SCPH-1001
Bios: v2.2

Loading a Gran Turismo 2 romhack, I was perplexed that my save file wasn't loading. I assumed it was an issue with either the romhack or the MemcardPro, but eventually narrowed it down the NeGcon controller I was using.

When the NeGcon is plugged in, TonyHax International does not recognize that I have a GameID-compatible memory card installed. The "REMOVE THE FREEPSXBOOT MEMORY CARD" message displays at the top of the screen, and GameID info is never sent to the memory card. If I use a DualShock or standard PSX gamepad during boot, TonyHax International and the MemCardPro function as expected.

https://github.com/alex-free/tonyhax/issues/77 This bug report seems to be the same bug as what I'm experiencing. Obviously switching controllers is a minor inconvenience that I'm willing to put up with, but if there's anything I can do to help you iron the bug out altogether, give me a shout.

Sort of have a writeup here: https://github.com/socram8888/tonyhax/issues/24#issuecomment-1823585149 . That issue is really interesting if you read it from the first post. The PS1 is essentially 'unaware' that anything other then 71 minute CD-ROMs exist, so it treats every disc you put into it as such. The same file on a 71 minute CD is farther from the center of the disc then it is on an 80 minute CD. So when the PS1 seeks very large distances (quarter to half or the entirety of the disc) it gets really inaccurate using fixed math based on the distance it expects a 71 minute CD to be for reading files. And if it happens to overshoot the burned area into the unburned area the whole drive locks up forever because it gets even more confused.

So when I read SYSTEM.CNF and the bootfile on disc, I use a custom seek function that instead of doing it in one seek, it splits it up into 4 before reading the file. Ensuring the laser doesn't move past the burned area of the CD-R. It only does this if those files require a sufficiently large seek distance though because it's not always the case. Sometimes the SYSTEM.CNF and bootfile are the 2 first files on the disc with single digit sector numbers from the center.

I'm aware of your issue, there's something weird about certain 'exotic' controllers and due to me not having access to those controllers or really knowing where to start with that unfortunately I haven't made any progress but I do hope to do eventually. Appreciate you making the issue.
 
Last edited:
alexfree updated Tonyhax International with a new update entry:

Tonyhax International v1.6.3 (4/12/2026)

  • Added massive PSX.EXE Game ID support update thanks to @Ronniesahlberg. All known PSX.EXE games should be working with GameID now.
  • Improved build documentation with some additional information I think anyone who wants to take a look at the code would like. Also added a necessary dependency (glibc static to both fedora and debian make deps).

Read the rest of this update entry...
 
Back
Top