GameID support for MemCardPro/SD2PSX. Additionally, Tonyhax International is the first to support early Japanese games (with 'PSX.EXE' bootfile) with GameID. Big thanks to the testers@lzibeti and @kimbapslice!
Modified RAM layout to handle a larger decompression by PS1 packer
Implemented a fix to work-around a 29 year old bug in the game Kileak, The Blood (Japan) which caused previous versions of Tonyhax International and all versions of the original Tonyhax to not boot it successfully.
Implemented the same functions that the original Tonyhax now uses to handle ignoring the garbage SP values in the PS-X executable header.
Integrated psn00bsdk-builder into the build system. You can now run make toolchain or make toolchain deps to build and or install the complete Tonyhax International dev environment on many Linux systems.
Loader bug fix: closes memory card/controller input pulling for all consoles (not just Japanese ones) after reading the target boot disc.
Removed my '80 Minute CD-R PS2 hardware bug software-fix' from the loader. I have done this because while my '80 Minute CD-R PS2 hardware bug software-fix' ensures correct reading of 80 minute CD-Rs while inside Tonyhax International, it can not do anything about what happens in-game after being booted. At least one game (Street Fighter Alpha 3 (USA)) crashes in-game due to the PS2 hardware bug with 80 minute/700MB CD-Rs, and that can not be fixed by my software-fix. Please instead use my PSX80MP to patch games that will be burned on 80 minute/700MB CD-Rs and played on PS2s. This is not required for using 80 minute/700MB CD-Rs on PS1 consoles.
Added ability to load gameshark codes from different save files on memory cards in slot 1 and slot 2. Up to 15 different save files containing GameShark codes can be on a memory card, so you can have up to 30 different sets of GameShark codes available for selection from within the loader now!
Updated thigsgen to v2.0.4. The default output save file name is now TONYHAXINTGS0. THIGSGEN releases are now distributed in the gameshark folder already decompressed for you, the .deb files remain as they are.
Added ability to update text in-place for debug_write(), implemented beautifully in the newly re-written gameshark memory card save file name select function.
Added official support for Beat Mania Append 3rdMix Key Disc bypass. You can boot the game with Tonyhax International directly instead of having to use an intended key disc first to do so.
Improved memory card formatter function's UX.
Modifed RAM layout for larger executable decompressed size. HAX and FF9 loader files are still only taking up 2 memory card slots though thanks to PS1 Packer compression.
Added back seperate secondary-ff9.ld. When using anything other then the Final Fantasy IX save game exploit, you get a bit more user RAM and hence higher chance to load a target PS-EXE with exec() (loadandexec() still overcomes any such issues with overlap, but it is nice to have the full target exe loaded while the loader itself is running).
Loader optimizations for efficiency and size. Rewrote controller input parsing, memory card formatting, and gameshark code save file reading. Cleaned up code to use some local declarations instead of global ones when possible. Added some more comments.
Changed video mode switching (NTSC to PAL or PAL to NTSC) to happen as early as possible. The idea with this is we only need one call to change the video mode (instead of doing it 2 different places depending on if we are using exec() or loadandexec() bios functions based on target PS-EXE size). Not only does that save some complexity, it also just makes sense. You'd want to see PAL video in the loader if your playing a PAL game (and you have everything else setup for it to actually display correctly with a NTSC PS1 that can do video mode switching), as early as possible.
Releases now include entry-bb.bin, entry-bb.elf, entry.bin, entry.elf, entry-ff9.bin, and entry-ff9.elf (which are used to develop save game exploits and gshax codes). Distributing these files in the Tonyhax International releases negates the need to compile them yourself if you don't want to, and could allow more people to submit these to me.
A new and exciting boot method known as GameSharkHAX has been added to Tonyhax International. This is a brand new 'way in' to the Tonyhax International loader for all PS1 and PS2 consoles that are supported by Tonyhax International (SCPH-1000-SCPH-39004). It uses GameShark codes to boot the Tonyhax International loader off a memory card file mid-game.
Condensed the Boot CD back to just one BIN+CUE file set. It is not actually necessary to have 2 different versions of the Boot CD, the single BIN+CUE file set in all Tonyhax International releases from here on out will work in every supported use case.
The documentation has been split into multiple markdown and html files. This makes it much more easy to maintain for me, and easier for you to comprehend, read, and share. The 'all in one html file' style before became unmanageable due to the sheer amount of info that has been added since the initial release.
Added save game exploit support for Final Fantasy IX Japan, Final Fantasy IX USA Rev 0, and Final Fantasy IX USA Rev 1 thanks to Patchouli (karehaani)!
Fixed the tonyhax.mcs and HAX loader files for the save game exploit boot method. Previously, only the HAX loader file copied via uLaunchElf specifically to a memory card was working due to an error accommodating the larger size of the Tonyhax International loader since v1.1.3. This issue has now been resolved and everything works as expected with both the tonyhax.mcs and HAX loader files as they are in the correct 'linked' format (you can see this in the memcardrex software for example).
Updated crosstool-ng to the latest version. Fixed and updated the crosstool-ng config file used to build the Tonyhax International toolchain to work with the latest version. The new config file also makes a more tuned PSX toolchain. The toolchain is set to be tuned for the r3000, for little-endian, for soft-float (no hardware float support), and for a 32-bit ABI. This means the previous CFLAGS setting these options explicitly are no longer necessary and have been removed from the various variable.mk* files in the source.
Updated the APv2 decompilation documentation (from the latest official Tonyhax).
Added more info on the RAM setups used by Tonyhax International and how they work. This information can be found in the ram-setups.txt file in the docs directory of the source.
Substantially rewrote the documentation with more information.
Implemented many speed and size optimizations for the tonyhax international loader. Can boot games quicker in some cases.
Applied this commit from OG TonyHax to better simulate how the BIOS boots games. As of 12/10/2022, where applicable Tonyhax International is current with the original Tonyhax.
Added support for bypassing the additional anti-piracy copy protection routines in Strider 2, Rockman X5, Rockman X6, Rockman 5, Dance Dance Revolution: Best Hits, Dance Dance Revolution 2nd Remix, Dance Dance Revolution 2nd Remix: Append Club Version Vol. 1, Dance Dance Revolution 2nd Remix: Append Club Version Vol. 2.
Added information on games with additional EDC Checks found in some games (most notably such checks are found in the Dance Dance Revolution games that I've just added support for bypassing their additional anti-piracy measures). You must burn games containing EDC Checks in a specific way for them to work.
Added support for bypassing the additional anti-piracy copy protection routines in Pop'n Music: Disney Tunes, Beatmania featuring Dreams Come True, Dancing Stage featuring Dreams Come True, Oha-Studio Dance Dance Revolution, Dance Dance Revolution: Disney's Rave, Dance Dance Revolution: Extra Mix, and Beatmania Best Hits (thanks trappedinlimbo).
Controller input in Japanese consoles reverted to proper silent debug_write message polling as in v1.1.2 and below.
Added support for bypassing the additional anti-piracy copy protection routines in Crash Bash/Crash Bandicoot Carnival, Koko Hore! Pukka, Love Hina: Ai wa Kotoba no Naka ni, and Love Hina 2: Kotoba wa Konayuki no You ni (thanks M4x1mumRez).
Added a Known Incompatible Games section, which documents games that currently do not work with either the original Tonyhax OR Tonyhax International.
Changed everything to be cleaner and closer to the latest source tree of the original Tonyhax. There will now be a diff comparing the loader directory of the current Tonyhax loader directory with the Tonyhax International loader directory, enabling easy comparison/documention/review of the current code differences between the fork and upstream. You can find this diff in the docs/tonyhax-vs-tonyhax-international-diffs directory in the source tree.
Added support for bypassing the additional anti-piracy copy protection routines found in all versions of Yu-Gi-Oh! Forbidden Memories, Cool Boarders 2001, Disney's The Emperor's New Grove, Resident Evil: Survivor, and Tomba! 2.