Skip to content

Commit aed0e62

Browse files
committed
v1.5.2i
1 parent f8d5149 commit aed0e62

30 files changed

+6583
-418
lines changed

Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
include variables-shared.mk
55

66
PACKAGE_FILE = tonyhax-international-$(TONYHAX_VERSION).zip
7-
PACKAGE_CONTENTS = $(ENTRY_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/entrypoints/%) $(ROM_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/rom/%) $(X_ROM_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/xstation/%) $(LOADER_OUTPUT_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/loader/%) $(FREEPSXBOOT_IMAGES:%=tonyhax-international-$(TONYHAX_VERSION)/freepsxboot/%) $(BOOT_CD_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/boot-cd/%) $(GSHAX_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/gshax/%) $(ENTRY_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/entrypoints/%) $(THIGSGEN_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/gameshark/%) tonyhax-international-$(TONYHAX_VERSION)/*.md tonyhax-international-$(TONYHAX_VERSION)/LICENSE tonyhax-international-$(TONYHAX_VERSION)/images/*
7+
PACKAGE_CONTENTS = $(ENTRY_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/entrypoints/%) $(ROM_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/rom/%) $(X_ROM_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/xstation/%) $(LOADER_OUTPUT_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/loader/%) $(FREEPSXBOOT_IMAGES:%=tonyhax-international-$(TONYHAX_VERSION)/freepsxboot/%) $(BOOT_CD_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/boot-cd/%) $(GSHAX_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/gshax/%) $(ENTRY_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/entrypoints/%) $(THIGSGEN_FILES:%=tonyhax-international-$(TONYHAX_VERSION)/gameshark/*%) tonyhax-international-$(TONYHAX_VERSION)/*.md tonyhax-international-$(TONYHAX_VERSION)/LICENSE tonyhax-international-$(TONYHAX_VERSION)/images/*
88

99
.PHONY: clean modules clean
1010

@@ -21,6 +21,7 @@ modules:
2121
$(MAKE) -C util
2222
$(MAKE) -C entrypoints all
2323
$(MAKE) -C thigsgen all
24+
cd gameshark && unzip -q '*.zip'
2425
$(MAKE) -C gshax all
2526
$(MAKE) -C loader clean
2627
$(MAKE) -C loader -f Makefile.freepsxboot all
@@ -52,6 +53,7 @@ clean:
5253
$(MAKE) -C rom clean
5354
$(MAKE) -C xstation clean
5455
$(MAKE) -C thigsgen clean-build
56+
scripts/test-thigsgen.sh --clean
5557
$(MAKE) -C gshax clean
5658
$(RM) tonyhax-*.zip
5759

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# [Tonyhax International](readme.md) -> American/European PS1/PS2 Console Loader Instructions
2+
3+
Start the Tonyhax International loader with a supported boot method.
4+
5+
Available boot methods for American and European PS2 consoles:
6+
7+
* [Boot CD](boot-cd.md).
8+
* [Save game exploit](save-game-exploit.md)
9+
* [GameShark Code](gameshark-code.md)
10+
11+
Available boot methods for American and European PS1 consoles:
12+
13+
* [TOCPerfect Patching](https://alex-free.github.io/tocperfect)
14+
* [GameShark Code](gameshark-code.md)
15+
* [ROM Flasher CD](flashed-cheat-cart.md)
16+
* [FreePSXBoot Memory Card Images](#freepsxboot-memory-card-images)
17+
* [Boot CD](boot-cd.md)
18+
* [Save Game Exploit](save-game-exploit.md)
19+
20+
Once you see the text `Put in a backup/import disc` appear, eject the DVD drive (PS2) or open the CD drive (PS1).
21+
22+
* If you are booting the Tonyhax International [Boot CD](boot-cd.md), you'll want to remove the spring or whatever you have blocking down the lid sensor to "open" the CD drive and stop the disc from spinning, allowing you to remove the Boot CD from the console's CD drive (PS1) or DVD drive (PS2).
23+
* If you are booting Tonyhax International via a [Save Game Exploit](save-game-exploit.md), after ejecting the DVD drive (PS2) or opening the CD drive (PS1) the real PS1 game disc you used with a save game exploit will stop spinning, allowing you to remove it from the console's CD drive (PS1) or DVD drive (PS2).
24+
25+
All other boot methods don't have a disc usually in the drive already, so there is no disc to remove. With no disc currently in your console, you can now put in the backup CD-R or import PSX game disc you want to play. Close the CD drive (PS1) or DVD drive (PS2). The console will detect that the drive has been closed and will spin up your disc. The console will then send some commands and boot the disc.
26+
27+
![scph 5501 rom](images/scph-5501-rom-loader.png)
28+
29+
![scph 5501 rom booting parasite eve usa disc 2](images/scph-5501-booting-parasite-eve-usa-disc-2.png)
30+
31+
## Playing Games With Multiple Discs
32+
33+
No special instructions are needed for USA and PAL consoles! It just works and is fully supported.

anti-piracy-bypass.md

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ _List Notes:_
5353
| [Barbie: Super Sports (Spain)](http://redump.org/disc/5579/) | [LibCrypt](#libcrypt) | Unknown | NO, patch disc with [LibCrypt patcher](https://alex-free.github.io/libcrypt-patcher). |
5454
| [BDFL Manager 2001 (Germany)](http://redump.org/disc/17767/) | [LibCrypt](#libcrypt) | Unknown | NO, patch disc with [LibCrypt patcher](https://alex-free.github.io/libcrypt-patcher). |
5555
| [BDFL Manager 2002 (Germany)](http://redump.org/disc/3320/) | [LibCrypt](#libcrypt) | Unknown | NO, patch disc with [LibCrypt patcher](https://alex-free.github.io/libcrypt-patcher). |
56+
| [Beat Mania Append 3rdMix (Japan)](http://redump.org/disc/2306/) | [EDC], [Key Disc](#key-disc) | Key Disc Disc Change/Boot. | EDC - NO. Key Disc - YES, boot game directly from Tonyhax International, do not use a Key Disc to boot it. |
5657
| [Beat Mania 6thMix + Core Remix (Japan)](http://redump.org/disc/16285/) | [APv2](#apv2) | Boot. | YES |
5758
| [Beat Mania Append GottaMix (Japan)](http://redump.org/disc/3550/) | [APv2](#apv2), [Key Disc](#key-disc) | Key Disc Disc Change/Boot. | APv2 - YES. Key Disc - YES, boot game directly from Tonyhax International, do not use a Key Disc to boot it. |
5859
| [Beatmania Best Hits (Japan) (Rev 0)](http://redump.org/disc/36175/) | [APv2](#apv2) | Boot. | YES |

changelog.md

+12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# [Tonyhax International](readme.md) -> Changelog
22

3+
## Version 1.5.1 (6/3/2024)
4+
5+
* [tonyhax-international-v1.5.1](https://github.com/alex-free/tonyhax/releases/download/v1.5.1i/tonyhax-international-v1.5.1.zip)
6+
7+
----------------------------------
8+
9+
Changes:
10+
11+
* Added APv1 bypass for Um Jammer Lammy (Europe) and Um Jammer Lammy (USA Demo). Added APv2 bypass for Dance Dance Revolution (USA).
12+
13+
----------------------------------
14+
315
## Version 1.5.0 (5/28/2024)
416

517
* [tonyhax-international-v1.5.0](https://github.com/alex-free/tonyhax/releases/download/v1.5.0i/tonyhax-international-v1.5.0.zip)

docs/ram-setups.md

+37-7
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
# RAM Layouts
22

3-
## Files To Update Each Time You Switch Layouts:
3+
These are notes for mostly myself to not forget how to increase the size of the loader :)
44

5-
* `entrypoints/entry.S`
6-
* `loader/tonyhax-tpl.mcs`.
7-
* `loader/tonyhax-tpl-ff9.mcs`
8-
* `loader/secondary.ld`
5+
## Files To Update When Switching Layouts:
6+
7+
* `entrypoints/entry.S` (temp buffer address)
8+
* `loader/tonyhax-tpl.mcs` (if number of linked slots in save file is changed).
9+
* `loader/tonyhax-tpl-ff9.mcs` (if number of linked slots in save file is changed)
10+
* `loader/secondary.ld` (origin, length, sections)
911
* `loader/generate-tonyhax-mcs.sh`
12+
* `loader/makefile` (start addr)
13+
* `loader/makefile.ff9` (start addr)
14+
15+
## General Notes:
16+
17+
* As of right now to store the loader on the memory card is only taking up 2 slots (1 linked slot)! Incredible, considering the original Tonyhax is also taking up the same (due to no compression teqnique in the original). In the future if the compressed size gets above the capacity of 2 slots, more slots can be added easily by changing to a larger template `-tpl.mcs` file, I've already created them for when compression was not used before.
18+
19+
* A 'gotcha!' to look out for is in the anti-piracy bypass system. Some bootfile matches are expecting the PS-EXE to always already be loaded at the time of `activate_anti_anti_piracy()` being called in order to do revision detection. This won't happen if the PS-EXE overlaps the tonyhax executable running... Revision detection is looking at the first different byte between revisions to determine what version the game is, since they share the same boot file name. As of right now no conflicts have occured, as in every game needing revision detection that also contain some bypassed anti-piracy are being loaded fully into user ram (via `exec()` codepath), fitting nicely without conflict and no need of `loadandexec()` to load and exec in place over any of the actual tonyhax executable (which is always in the highest possible RAM location according to layout provision). Whenever this (if ever) leads to a conflict, I'll need to write a function to partially load the exe to a size that still allows revision detection to some temp buffer. Any conflict could occur first for the Final Fantasy 9 exploit since you get slightly less user ram to work with.
1020

1121
## Layout 1: Tonyhax OG/Tonyhax International v1.0-v1.1.0
1222

@@ -38,7 +48,7 @@ Final Fantasy IX's save game exploits require a different load address then all
3848

3949
This was calculated by taking the address 0x801F8180 (the current Tonyhax International start addr since v1.1.1) and adding 0x4000 (the last Tonyhax International loader file size which worked with the FF9 exploit previously (v1.1.2)) to get 0x801FC180 (which is possibly the highest we can actually use from within FF9 for the exploit). 0x801FC180 as the max would mean 0x801FC180 - 0x7E00 (the current max size of the loader since v1.3.0) = 0x801F4380 should work for FF9 start addr.
4050

41-
## Layout 4: Tonyhax International v1.4.4-??
51+
## Layout 4: Tonyhax International v1.4.4-v1.5.1
4252

4353
Note: This uses PS1 Packer to decompress a larger exe, which no other layout previously did.
4454

@@ -55,6 +65,26 @@ Final Fantasy IX Oddity
5565

5666
Final Fantasy IX's save game exploits require a different load address then all other games and boot methods available in Tonyhax International. The standard 0x801F6200 can not be used to start the Tonyhax International loader from the Final Fantasy IX save game exploit, so a different address is specifically used: 0x801F4380.
5767

58-
This was calculated by taking the address 0x801F8180 (the current Tonyhax International start addr since v1.1.1) and adding 0x4000 (the last Tonyhax International loader file size which worked with the FF9 exploit previously (v1.1.2)) to get 0x801FC180 (which is possibly the highest we can actually use from within FF9 for the exploit). 0x801FC180 as the max would mean 0x801FC180 - 0x7E00 (the current max size of the loader since v1.3.0) = 0x801F4380 should work for FF9 start addr.
68+
This was calculated by taking the address 0x801F8180 (the current Tonyhax International start addr since v1.1.1) and adding 0x4000 (the last Tonyhax International loader file size which worked with the FF9 exploit previously (v1.1.2)) to get 0x801FC180 (which is possibly the highest we can actually use from within FF9 for the exploit). 0x801FC180 as the max would mean 0x801FC180 - 0x7E00 (the current max size of the loader since v1.3.0) = 0x801F4380 works for FF9 start addr.
69+
70+
## Layout 5: Tonyhax International v1.5.2-??
71+
72+
Note: Uses PS1 Packer to decompress a larger exe.
73+
74+
0x3F00 (Original size of tonyhax) / 2 = 0x1F80 (half size of original tonyhax layout max size)
75+
0x7E00 (last layout max size) + 0x1F80 (half size of original tonyhax) = 0x9D80 (2.5 times original size)
76+
77+
0x801FE000 (max) - 0x9D80 (current layout size) = 0x801F4280 Makefile tload/generate-tonyhax-mcs.sh
78+
0x801F4280 (start) - 0x5000 (to not overlap PS1 Packer) = 0x801EF280 for secondary.ld/ps1 packer stage
79+
0x801EF280 - 0x100 (temp buffer address for entry.S) = 0x801EF180 for entry.S temp buffer
80+
81+
0x801FC180 (max for ff9) - 0x9D80 (current layout size) = 0x801F2400 for Makefile tload/generate-tonyhax-mcs.sh
82+
0x801F2400 (start for ff9) - 0x5000 (to not overlap PS1 Packer) = 0x801ED400 for secondary.ld/ps1 packer stage
83+
0x801ED400 - 0x100 (temp buffer address for entry.S) = 0x801ED300 for entry.S temp buffer
84+
85+
Load Address after decompression: 0x801F4280 (Final Fantasy IX save game exploit) or 0x801F2400 (literally everything else).
5986

87+
Executable max length: 0x9D80
6088

89+
Load Address in secondary.ld: 0x801ED400 (Final Fantasy IX save game exploit) or 0x801EF280 (literally everything else)
90+
This fits in a memory card with one 'linked slot' shown in memcardrex.

0 commit comments

Comments
 (0)