|CPU||MIPS R3000 (33.8688 MHz)|
|GPU||32bit Graphic Processing Unit|
|Connectivity||UART Serial and Parallel Ports|
|Players supported||2 (with Multi-Tap, 4)|
The Sony Playstation, or PSX, was a video game console based around the MIPS RS3400. This chip was also the basis for the Nintendo 64 console, The PSX was one of the first consoles to use CDROM as its game medium instead of ROM cartridges.
The Sony Playstation has many emulators but the most popular current emulators are ePSXe, PCSX, no$psx, and pSX. Some historic emulators include PS Emu Pro, Psyke, Bleem and the Connectix Virtual Game Station. Some emulators have built in debugger support. pSX and no$psx have debugger support built in and the Agemo version of PCSX adds debugger support for that emulator.
|PCSX Agemo||http://www.romhacking.net/utilities/475/||A debugger built on top of PCSX|
|pSX Logger||http://www.romhacking.net/utilities/364/||The most well featured debugger for the PSX, has built in logging support but requires the Front End to use it https://sites.google.com/site/ultimasites/psx-frontend|
|No$PSX||http://problemkaputt.de/psx.htm||The most well researched emulator available, the site has extensive information about the PSX platform http://problemkaputt.de/psx-spx.htm|
|IDA Pro||http://www.romhacking.net/utilities/1165/||The industry standard for reverse engineering. There are flirt signatures available for identifying BIOS libraries https://www.romhacking.net/utilities/771/|
CD ROM Images
The PSX uses CDROM disks. These disks use the industry standard ISO9660 virtual file format. These images can be in iso format and bin/cue or img/cue format. The bin/cue and img/cue formats are the same and these are simply raw dumps of the CDROM. The iso format is smaller and strips out all overhead such as empty sectors. Standard CD Authoring software can be used to manipulate these CDROM images. The most popular CDROM authoring tool is CDMage. The ISO9660 File Format uses Error Correction Codes (ECC) which must be corrected in order for the image to operate on real hardware. Tools such as ECC Regen can be used to achieve this with modified CDROM images.
|CD Mage||https://www.emuparadise.me/links-and-downloads/General_CD_Utils/CDmage_1.02.1_Beta_5/20||This tool can be used to extract and insert data files|
|EccRegen||http://consolecopyworld.com/psx/psx_utils_misc.shtml||This tool can be used to correct the CDROM Error Detection and Correction Codes so that modifications can run on real hardware|
RomHacks for the PSX platform are typically distributed as patches. The PPF (Playstation Patch Format) is the most popular format. Some emulators (such as ePSXe) have built in support for loading these patches. A PPF patch can created using PPF Studio and can be applied using PPF-O-Matic.
|PPF Studio||http://www.romhacking.net/utilities/514/||This tool creates a PPF patch|
|PPF-O-Matic||http://www.romhacking.net/utilities/356/||This tool applies a PPF patch|
Memory Card Images
The PSX has two memory card ports, each memory card has 128KB of storage capacity. Most emulators simply use raw dumps for these memory cards with a small header prefixed to some formats. The MCD, MCR and BIN formats are of this form. The GME file format is a proprietary Dex Drive format which was used to back up memory cards to a PC. Tools exist to convert between these formats with MemCardRex being a mature memory card tool.
|MemCardRex||https://www.zophar.net/utilities/psxutil/memcardrex.html||This allows you to modify and convert between memory card formats|
Game Shark Codes
The PSX version of Game Shark allows a user to patch memory, and can be used as a crude form of hacking games on the PSX platform. The CEP program can be used with most emulators to provide GameShark support for that emulator. The PSX GameShark uses the following code formats.
|30XXXXXX 00YY||8-bit write (contents of XXXXXX = YY)|
|20XXXXXX 00YY||8-bit increment (add YY to address XXXXXX)|
|21XXXXXX 00YY||8-bit decrement (subtract YY from address XXXXXX)|
|E0XXXXXX 00YY||8-bit equal to activator (if contents of XXXXXX is equal to YY, then do the next code)|
|E1XXXXXX 00YY||8-bit not equal to activator (if contents of XXXXXX is not equal to YY, then do the next code)|
|E2XXXXXX 00YY||8-bit less than activator (if contents of XXXXXX is less than YY, then do the next code)|
|E3XXXXXX 00YY||8-bit greater than activator (if contents of XXXXXX is greater than YY, then do the next code)|
|80XXXXXX YYYY||16-bit write (contents of XXXXXX = YYYY)|
|10XXXXXX YYYY||16-bit increment (add YYYY to address XXXXXX)|
|11XXXXXX YYYY||16-bit decrement (subtract YYYY from address XXXXXX)|
|D0XXXXXX YYYY||16-bit equal to activator (if contents of XXXXXX is equal to YYYY, then do the next code)|
|D1XXXXXX YYYY||16-bit not equal to activator (if contents of XXXXXX is not equal to YYYY, then do the next code)|
|D2XXXXXX YYYY||16-bit less than activator (if contents of XXXXXX is less than YYYY, then do the next code)|
|D3XXXXXX YYYY||16-bit greater than activator (if contents of XXXXXX is greater than YYYY, then do the next code)|