[JAPANESE PAGE]
2001-11-12
Off topic:tc-mips.c allows you using zero,at,v0... as registers. Just replace gas/config/tc-mips.c with it. I tested it with Gustavo Scotti's gnu-ee-binutils-gcc.1.1.tar.gz.

DOWNLOAD PS2DIS Ver.0902090408BUILD #35 (2002-03-16)
[New Feature]
#35)bug fix etc.
#34)bug fix.
#33)Added a new feature 'Analyze sifCallRPC'. Fixed some bugs.
#32)Fixed some bugs.
#31)Fixed some bugs.
#30)Colored registers(COP1 COP2). Fixed bugs. Added Shift+Up/Down/PageUp/PageDown: Scroll with address fixed.
#29)Colored registers(GPR only)
#28)Ctrl+C was degraded... Binary search has been added.(Ctrl+F)
#27)Nothing new. Emulator: Some are fixed, some are added.
#26)Ctrl+F,F5,Shift+F5: Search String.
#25)Alt+Up/Down Arrow: Jump to address which type is NOT match with current address.
It's useful when codes are separated and hard to find where codes are written.
0902080408 or lator has an EE emulator function. It's NOT STABLE yet. Press shift+ctrl+r if you're interested.
PS2DIS is a disassembler for PlayStation. It features, NOTE: I've tested it on a Japanese and U.S. Windows. If you can't read menus or words on dialogs at all, please tell me. Also, I know there are many strange English in PS2DIS, so tell me the TRUE ENGLISH please!
Email to: hanimar@oocities.com

2001-12-01

HOW CAN I CREATE CHEAT CODES FOR AR2/GS2?

Kajapon no oheya has a document which describes how PAR2(AR2 in Japan) works with cheat codes, how cheat codes are encrypted, and how to find master codes. If you're interested and can read Japanese, select [game no oheya] then [PS2PAR Kaisekibeya] and you'll find the great work!
well,

GETTING STARTED

SETTING FONTS

Run ps2dis.exe, then choose fonts at first. Focus disassembler window and choose "Preference-fonts...". Focus Hex window and do it in the same way. I think "Courier New - regular" is a good choise.

BROWSING and ANALYZING PS2 BINARIES

Simply drop a PS2 executable. Use following keys to bworse,
KEYACTION
UP/DOWNMoves up and down
PageUp,PageDownNext/Prev page
Ctrl+PageUp,Down1000h Up/Down
Alt+PageUp,Down10000h Up/Down
gJump to specified address
Ctrl+gJump to specified label (if there are labels set).
Right arrow (USEFUL!)Jump to address which current line refers to.
Left arrowReturn back to referrer.

LABELLING TEXT RESOURCES

- With new version, PS2DIS detects many string literals automatically.
There must be some text resources in .data or .rodata section. If you find them, I sugest you label it with this easy way.
  1. Cursor the top of string(s).
  2. Then press Shift+b and label is set.
  3. If there are more strings after this, continue pressing that key.

LABELLING SYSCALLs

PS2 kernel supports some system-calls and most executables have these functions. PS2DIS will automatically find and label them. Choose "label syscall" from menu "Analyzer".

LABELLING MEMORY MAPPED I/Os

ps2.map that comes with ps2dis.exe defines some known I/O addresses. Choose "Load label" from menu "File" then import it.

INVOKING ANALYZER

PS2DIS has powerful analyzer functions. To use it, you should run Analyzer first. Choose "Invoke analyzer" from menu "Analyzer". It may looks as if it hangs up, but don't worry, wait a while and it should return.
You will see another labels like FNC_XXXXXXXX or __XXXXXXXX which are refered from somewhere. FNC_XXXXXXXX are the points that some JALs point to. Mark it using SPACE key then press F3, you will see the referrers. Press Alt+x to return back to marked address.(This exchanges cursor and mark.) Press F3 to jump to next referrer. Press Alt+A to show/hide these labels.

IMPORTING LABELS FROM AN OTHER FILE

This function will transplant symbols from files which has symbols. You should invoke Analyzer before do this. Try "Import labels from other file" in menu "Analyzer" then choose any file that has symbols. It finds functions that are assumed same, and label them. Check labels using Ctrl+g!

KEY ASSIGN

KEYACTION
DATA TYPE RELATED
bSet type as BYTE
Alt+bSet type of the region between marked and cursor as BYTEs
Shift+bSet type as BYTE then label it
hSet type as HALF WORD
Alt+hSet type of the region between marked and cursor as HALFs
wSet type as WORD
Alt+wSet type of the region between marked and cursor as WORDs
dSet type as DOUBLE WORD
Alt+dSet type of the region between marked and cursor as DWORDs
qSet type as QUAD WORD
Alt+qSet type of the region between marked and cursor as QWORDs
cSet type as CODE
Alt+cSet type of the region between marked and cursor as CORDs
fSet type as FLOAT
Alt+fSet type of the region between marked and cursor as FLOATs
v(EXPERIMENTAL) Set type as VU MICRO CODE - lower/upper
Alt+v(EXPERIMENTAL) Set type of region as VU MICRO CODE
uSet type as UNDEFINED(almost same as CODE)
Alt+uSet type of the region between marked and cursor as UNDEFs
Shift+uSet type as NOT INITIALIZED
MARK/REGION RELATED
SPACEMark current line, or reset current mark
Ctrl+tSave region(which are lines between current line and marked line) as text file
Ctrl+cCopy current function to the clipboard
ADDRESS STACK RELATED
Right arrowPush current address into Stack then jump to address where the current line refer to
Left arrowPop an address from Stack then jump to the address. Popped address is still there. See below.
Ctrl+Right arrowJump to the address which has popped recently. It behaves like 'history' function of WWW browsers.
Ctrl+Left arrowBack to the Stack. It behaves like 'history' function of WWW browsers.
InsertPush current address into Stack
EDITOR
EnterEditor dialog pops up. You can edit label,command and opcode itself. If you edit opcodes, all histories are saved as Patch. See 'p' command.
PATCH
pOpen 'patch' dialog. You can view all changes, enable/disable each change, and copy that infos to the clip board (for creating chat codes). (Assembler function doesn't work properly with some opcodes, for now.)
MOVE
PageUp or Ctrl+bPage Up
PageDown or Ctrl+fPage Down
Upup
Downdown
Ctrl+Up/DownUp/Down to prev/next function
Ctrl+PageUp,Down1000h Up/Down
Alt+PageUp,Down10000h Up/Down
gJump to specified address in hexadecimal. When you hit space key after typed all 8 hex charcters, it decodes the address as AR2 cheat code.
Ctrl+gJump to the address where the selected symbol belongs to
HomeJump to start address
Shift+3Set a 32bit word then find next.
F4Find the 32bit word you set. (forward)
Shift+F4Find the 32bit word you set. (backward)
Ctrl+fFind pattern
F5Find the pattern you set. (forward)
Shift+F5Find the pattern you set. (backward)
Shift+Up/DownMove cursor up/down with address fixed
Shift+PageUp/PageDownMove cursor up/down with address fixed
ANALYZER RELATED
Alt+xExchange current line with marked line
F3Jump to next address where marked line reffers to
Shift+F3Jump to previous address where marked line reffers to
Ctrl+iImport symbols (of function names) from other file
Ctrl+Shift+1Import symbols (of function names) from folder which has PSX Libs(*.lib). This function doesn't support multi-thread so it looks as if it hungs up...

hanimar@oocities.com