Skip to content

BacteriaMage/n64-gameshark-data-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

N64 GameShark C# Data Model

Just some quick-and-dirty classes representing the Games/Cheats/Codes data model used by the Nintendo 64 GameShark v1.08 and newer, plus a couple of helper classes for reading and writing this data. The helpers can read and write the binary formats the GameShark itself uses as well the text format used by the official N64 Utility program. I created these classes while playing around with some of the devices in my personal collection.

Note Files

The GameShark Pro can read and write the cheat list for a single game to and from a note file on the controller pak (press the Z button from the games list). The NoteWriter and NoteReader classes can read and write this data to and from a ".note" file used with the MPKEdit memory card editor.

List Files

The official N64 Utilities program from Interact allows communication with a GameShark Pro 3.1 and 3.2 using the parallel port on a compatible PC. This utility can import and export the full game and cheat list directly to and from the GameShark cartridge using a specially formatted text file. Text files in this format can be generated and parsed by the ListWriter and ListReader classes, respectively.

ROM Files

The GameShark stores the game and cheat lists in the last quarter of the same flash memory chip where the program "ROM" is stored (not actually a ROM; just colloquially referring to the firmware). This means any ROM image for the GameShark contains a complete list of games and codes which can be read and updated. The RomReader and RomWriter classes can read and write this binary data in the format that it is stored in on the device.

ROM Encryption

The N64 Utilities program has an update feature which writes a fresh ROM to the device updating it to version 3.3 and optionally resets the games list. The accompanying "ar3.enc" file contains the complete 256 KB image including the updated GameShark program and default games list but the file is encrypted so that it cannot be directly read or modified by users. The RomCrypter class can encode or decode such a file allowing the official image to be examined, or modified, or replaced outright with a different version. This code is based on an earlier implementation in C by Hanimar.

About

N64 GameShark C# Data Model

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages