|
1 | 1 | ---
|
2 |
| -title: Example Guide |
3 |
| -description: A guide in my new Starlight docs site. |
| 2 | +title: PlayStation |
| 3 | +description: A summary of how to approach reverse engineering with PlayStation Emulation and Tools |
4 | 4 | ---
|
5 | 5 |
|
6 |
| -Guides lead a user through a specific task they want to accomplish, often with a sequence of steps. |
7 |
| -Writing a good guide requires thinking about what your users are trying to do. |
| 6 | +In this guide, we’ll explore methods to debug and update the files in **PlayStation Games**. These methods focus on using memory editing tools to analyze how the game works and updating game files to modify assets or content. |
8 | 7 |
|
9 |
| -## Further reading |
| 8 | +## Memory |
| 9 | +One of the best approaches for debugging **PlayStation Games** and understanding how it works is through memory analysis. This section explains how to extract and modify the game’s memory to experiment with in-game changes. |
| 10 | +### Steps for Debugging with Memory |
10 | 11 |
|
11 |
| -- Read [about how-to guides](https://diataxis.fr/how-to-guides/) in the Diátaxis framework |
| 12 | +1. **Choose an Emulator**: |
| 13 | +The recommended emulators for memory analysis are: |
| 14 | +- **DuckStation** |
| 15 | +- **PCSXR** |
| 16 | +- **RetroArch** |
| 17 | + |
| 18 | +2. **Create a Save State**: |
| 19 | + - Play the game until you reach the point where you want to investigate or modify in-game data. |
| 20 | + - Create a save state using the emulator (usually accessible from the emulator’s menu). |
| 21 | +3. **Dump the Memory from the Save State**: |
| 22 | + - Save states include a snapshot of the game’s memory at a specific point. By dumping the save state, you gain access to the current memory values. |
| 23 | + - Use tools specific to each emulator to extract the memory from the save state. |
| 24 | +4. **Analyze and Edit the Memory**: |
| 25 | + - Open the dumped memory in a hex editor or reverse-engineering tool like **hx**. |
| 26 | + - This will allow you to make changes or look through the memory by writing your own scripts or analysis |
| 27 | +5. **Reload the Edited Save State**: |
| 28 | + - Once you have edited the memory, reload the modified save state in the emulator. |
| 29 | + - The game should reflect the changes made to the memory, allowing you to see the effects in real-time.This process can be repeated for testing new ideas, finding data structures, or experimenting with gameplay changes. |
| 30 | + |
| 31 | + |
| 32 | +## Files |
| 33 | +Modifying the game files is a more direct approach to updating assets, models, textures, and even scripts in **PlayStation Games**. The following section outlines how to extract, modify, and rebuild the game files. |
| 34 | + |
| 35 | +### Steps for Modifying Game Files |
| 36 | + |
| 37 | +1. **Dump the Game Files**: |
| 38 | +To access the raw files within the PSX version of the game, use a tool called **mkpsxiso**. This tool extracts the contents of the PSX ROM (ISO) into a manageable format. |
| 39 | + - First, run `mkpsxiso` to dump all the files from the original ROM. |
| 40 | + - The tool will generate an **XML file** that defines the order of the files and how they are organized on the disc. |
| 41 | +2. **Rebuild the Game ROM**: |
| 42 | +After making modifications to the game files: |
| 43 | + - Use `mkpsxiso` again to rebuild the ISO, ensuring that the **XML file** matches the original file order. |
| 44 | + - The tool will pack the updated files back into the ISO format. |
| 45 | +3. **Test the Modified ROM**: |
| 46 | + - Load the rebuilt ROM into an emulator (e.g., DuckStation, PCSXR, or RetroArch). |
| 47 | + - Test the changes to ensure the modifications work correctly and the game behaves as expected.By following these steps, you can modify various aspects of the game, such as textures, models, or even gameplay scripts. |
| 48 | + |
| 49 | + |
| 50 | +## Tools |
| 51 | +Here’s a list of tools mentioned in this guide to help with memory analysis and file modification: |
| 52 | +- **Emulators**: |
| 53 | + - [DuckStation](https://github.com/stenzek/duckstation) |
| 54 | + - [PCSXR](https://ps1emulator.com/) |
| 55 | + - [RetroArch](https://www.retroarch.com/) |
| 56 | + - [no$psx](https://problemkaputt.de/psx.htm) |
| 57 | +- **SaveState Editing Tools**: |
| 58 | + - [hx](https://github.com/krpors/hx): Simple vim-like hex editor for the command line |
| 59 | + - [ImHex](https://github.com/WerWolv/ImHex): Command Line hex editor built for reverse engineering |
| 60 | +- **File Dumping and Rebuilding**: |
| 61 | + - [mkpsxiso](https://github.com/Lameguy64/mkpsxiso): Tool for dumping and rebuilding PSX ISOs. |
| 62 | +- **Courses and Articles**: |
| 63 | + - [PS1 Programming with MIPS Assembly & C](https://pikuma.com/courses/ps1-programming-mips-assembly-language) |
| 64 | + - [How PlayStation Graphics & Visual Artefacts Work](https://pikuma.com/blog/how-to-make-ps1-graphics) |
0 commit comments