A script named test
is found in the source folder. This script processes 12 different types of GameShark codes into save files, and known good checksums ensure they were generated as intended.
Additional functionality:
./test clean
- delete all generated tests files and current builds.
./test update
- update known good checksums referred to by the tests suite.
Below are descriptions of each test, and what game they are for.
Game: Rockman 2: Dr. Wily no Nazo (Japan)
Codes: Unlock All Extras
Tests: 50/80 pair
, 50/80 pair
Functionality: Unlocks all database, modes, options, etc.
Game: Parasite Eve (Disc 1) (USA)
Codes: Warp To Debug Room
Tests: D0/80 pair
, D0/30 pair
Functionality: Hit the R2
+ L2
buttons at the same time while you can move Aya to warp to the debug room.
Game: Duke Nukem: Total Meltdown
Codes: Hold Triangle To Moon Jump
Tests: E0/80 pair
, E0/80 pair
Functionality: Press R2
to jump. IMMEDIATELY let go of R2 and while in mid-air without holding R2 hold the triangle button only. You can move around with the joysticks just fine.
Game: Parasite Eve II (Disc 1) (USA)
Codes: All Parasite Abilities & They Are At LVL.3 Power
Tests: 50/30 pair
Functionality: All parasite abilities enabled at level 3 power.
Game: Herc’s Adventures (USA)
Codes: Have All Items Set One, Have All Items Set Two, P1 Infinite Health
Tests: 80
Functionality: All items and infinite health for player 1.
Game: Parasite Eve (Disc 1) (USA)
Codes: Outfit Modifier
Tests: 30
Functionality: Changes Aya to always wear the dress. NOTE this code is buggy when Aya is performing actions like opening doors, etc. This buggy-ness IS expected from this code, it is reproducible using DuckStation’s own native code support and GameShark Lite on real hardware. This is NOT an issue with the gameshark cheat engine used by Tonyhax International and just a GameShark code flaw.
Game: Resident Evil: Director’s Cut: Dual Shock Ver. (USA)
Codes: This is a code I made which only proves the observable behavior of this code type is correctly handled.
Tests: E2/30 pair
Functionality: At 8005D280 there is a 0x60 byte at least while the game starts up at the ‘This game contains explicit scenes of violence and gore’ disclaimer. The code will change that 0x60 byte to 0x01 since it is lower then the comparison byte 0x61.
Game: Resident Evil: Director’s Cut: Dual Shock Ver. (USA)
Codes: This is a code I made which only proves the observable behavior of this code type is correctly handled.
Tests: E2/30 pair
Functionality: At 8005D280 there is a 0x60 byte at least while the game starts up at the ‘This game contains explicit scenes of violence and gore’ disclaimer. The code will not change that 0x60 byte to 0x01 since it is not lower then the comparison byte 0x60 (it is equal).
Game: Resident Evil: Director’s Cut: Dual Shock Ver. (USA)
Codes: This is a code I made which only proves the observable behavior of this code type is correctly handled.
Tests: E3/30 pair
Functionality: At 8005D280 there is a 0x60 byte at least while the game starts up at the ‘This game contains explicit scenes of violence and gore’ disclaimer. The code will change that 0x60 byte to 0x01 since it is higher then the comparison byte 0x59.
Game: Resident Evil: Director’s Cut: Dual Shock Ver. (USA)
Codes: This is a code I made which only proves the observable behavior of this code type is correctly handled.
Tests: E3/30 pair
Functionality: At 8005D280 there is a 0x60 byte at least while the game starts up at the ‘This game contains explicit scenes of violence and gore’ disclaimer. The code will not change that 0x60 byte to 0x01 since it is not higher then the comparison byte 0x60 (it is equal).
Game: Resident Evil: Director’s Cut: Dual Shock Ver. (USA)
Codes: This is a code I made which only proves the observable behavior of this code type is correctly handled.
Tests: D2/80 pair
Functionality: At 8005D280 there is a 0x60 byte, at 8005D281 there is a 0x28 byte at least while the game starts up at the ‘This game contains explicit scenes of violence and gore’ disclaimer. The code will change the 0x60 and 0x28 bytes to 0x01 0x02 since it is lower then the comparison bytes 0x61 and 0x29.
Game: Resident Evil: Director’s Cut: Dual Shock Ver. (USA)
Codes: This is a code I made which only proves the observable behavior of this code type is correctly handled.
Tests: D2/80 pair
Functionality: At 8005D280 there is a 0x60 byte, at 8005D281 there is a 0x28 byte at least while the game starts up at the ‘This game contains explicit scenes of violence and gore’ disclaimer. The code will not change the 0x60 and 0x28 bytes to 0x01 0x02 since it is not lower then the comparison bytes 0x60 and 0x28 (it is equal).