News: 11 March 2016 - Forum Rules

Author Topic: What tools need to be used to modify PS2 or PSP games?  (Read 11500 times)

ACmod

  • Jr. Member
  • **
  • Posts: 27
    • View Profile
What tools need to be used to modify PS2 or PSP games?
« on: September 14, 2016, 09:49:47 am »
I've been searching for a few days to figure out how to learn how to modify Armored Core Last Raven (or its PSP port) and I can't seem to find any tools used to modify the game disk (ISO) at all. It seems like there is simply no way to modify a PS2 or PSP game, is this true?

BlackDog61

  • Hero Member
  • *****
  • Posts: 784
    • View Profile
    • Super Robot Wars A Portable translation thread
Re: What tools need to be used to modify PS2 or PSP games?
« Reply #1 on: September 14, 2016, 01:03:22 pm »
Hi there!

Search more. ;D
There have been 2-3 topics about PS / PS2 tools to support disk opening / re-creating, on this very forum, in the past 6 months or so. Good answers have been provided. I think searching for "PS2" doesn't yield that many results.
For PSP, I'm pretty sure there are other topics too, but let me give you a keyword I remember: UMDgen.

Good luck!

ACmod

  • Jr. Member
  • **
  • Posts: 27
    • View Profile
Re: What tools need to be used to modify PS2 or PSP games?
« Reply #2 on: September 14, 2016, 03:14:41 pm »
I've searched all topics that mention PSP, but I haven't found any useful information or tools on how to modify assembly code (or disassemble/decompile it) to change values of a game. I can read the hex code but there's no tools for reverse engineering it to apply my own hacks.

flame

  • Full Member
  • ***
  • Posts: 120
    • View Profile
Re: What tools need to be used to modify PS2 or PSP games?
« Reply #3 on: September 14, 2016, 04:35:32 pm »
UMDGen. http://www.romhacking.net/utilities/1218/
It will extract files from a UMD ISO and will help you put a file you modified back into a UMD ISO.

We PSP Romhackers have to improve the PSP section on data crystal so everyone who's interested will know this.

Disassembly tool PPSSPP, just put that one into Google.
You need a Windows machine for that one I am pretty sure.
PPSSPP is a user-focused emulator. All you have to do though is:
1) Be running your target game
2) Be running in windowed mode. This WILL NOT WORK in fullscreen mode
3) press CTRL+D while the game is running to open the disassembly view

While in disassembly view click "pause" to stop execution. The current instruction will be highlighted. Click "go" to resume.
Double-click an instruction to set an execution breakpoint.
At this point you can navigate using the disassembler controls. "Step into" to go to the next instruction taking subroutines. "Step over" goes to the next instruction, but won't enter subroutines. Step out runs until the next return.
You can see register values on the left. There are a lot of registers, I'm not sure why that is. There are even more registers than initially displayed. GPR is the general-purpose registers. The coprocessor has its own registers you can see by clicking the buttons.
You can click "FUNCS." I am not sure how this works, but the basic idea is PPSSPP debugger will try to identify function boundaries, and you can go to any of these functions. "Built-in" functions called syscalls appear at the bottom and ask the device firmware to perform some function, such as read control input, wait for the GPU to push the next frame, or load data from the UMD (are just some examples). There are some utility functions here too like memcpy and memset are the big ones.

The disassembly view includes a memory viewer. Here's what to do to set a memory breakpoint.
1) Click in the memory view area
Notes:
The memory view area has two sides. The left side shows hex and the right side shows ASCII. When your cursor is on the left side, you can type hex to change the memory. When your cursor is on the right side you can type ASCII to change the memory. For typing non-ASCII you have to type in the hex.
2) CTRL+F to search. Only hex searching is supported OR
2) CTRL+G to "go to." Type in the address to go to in hex.
Note: Finding addresses to go to is outside the scope of this tutorial.
3) Right-click in the memory view and select copy address
4) Go to the breakpoints pane, right-click and select add breakpoint
5) Paste in the address and then click OK
Your memory breakpoint is now set. Execution will stop when that address is about to be read or written to.

Just mess around with it and you'll eventually get it.
It's also helpful to read the MIPS manual. Search MIPS IV to find it.

ACmod

  • Jr. Member
  • **
  • Posts: 27
    • View Profile
Re: What tools need to be used to modify PS2 or PSP games?
« Reply #4 on: September 14, 2016, 05:11:20 pm »
Awesome. These were the tools I was using so far but I didn't know how to navigate the PPSSPP assembler once opening it up.

Right now I'm getting feedback on this thread: http://www.romhacking.net/forum/index.php?topic=22698.msg318023#msg318023

Though this looks like some good general information that can help me navigate the disassembly view better.

dothacktranslate

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Re: What tools need to be used to modify PS2 or PSP games?
« Reply #5 on: October 21, 2016, 01:14:47 pm »
I'm working on a PSP game at the moment and I've found that you'll usually need programs like the following, although they may not be needed for all PSP games.

-UMDGen
-CRI Packer
-A PMF Video Converter (If you want to edit game videos like FMVs)
-Sony's UMD SDK Tools (If you can find it. It's technically illegal to use without a license and licenses are expensive. You don't need it, and the programs are in Japanese, but it's helpful if working with the PMF files or video files in Sony's own formats.)
-A good text editor for viewing certain files for strings like Notepad++
-QuickBMS (I can't recall, but I think this is for extracting files from .cpk archives. Haven't used it in a while)
-A Hex-code viewer/editor.

There are others and some people create their own tools for dealing with this stuff, but this should help you get started.
« Last Edit: October 21, 2016, 01:19:58 pm by dothacktranslate »