Hypermode

Nach Brenner, iN tHE mIND..., Codemaster-Project, CMX, Crash Test Dummies (CTD)
What is a Speed Modifer?
A speed modifier alters processing speed of your PS2 Unit. Some
Speed Mods alters the speed of the actual game you are playing.

What is the purpose of these codes?
Nothing really. If stuff people do in there spare time, and its really
help for the games that load so slowly. Lets give them a Boost!

This is not a complete guide! this is just to give you the general idea
of what to look for when trying to make this codes.


Here is a tip when looking for a Speed Mod, Load the elf, and invoke analyzer
in PS2DIS or if you use IDA Pro let it load completely or until it lets you
exploder the file, just do a search for 3f800000 (0000803f)
Yes there will be alot of 3f800000, but this narrows it down since
3f800000 equals the default speed of the game.

-=- Values -=-
1xxxxxxx ????????
00004000 Super Speed
00004080 Turbo Speed
00004100 Ultra Speed
00003F80 Normal Speed (Default)

2xxxxxxx ????????
3E400000 Mega Slow Motion
3E800000 Super Slow Motion
3F000000 Slow Motion
3f800000 Normal Speed (Default)
40000000 Hyper Mode
41000000 Mega Hyper Mode
40800000 Super Hyper Mode



-=- Patterns =-=
This is the most difficult, but this is th most widely used method in finding
the codeunless you ahve a trainer or dumper. First thing you want to do is
know what pattern to look for, common sense is look for the default
speed 3f800000. So you are going to look for the pattern 0000803f as a
hex stringer

For Future Reference cause i know some people will not get it
3f800000 = 0000803f

NOTE: that this is the hardest method of them all!




=-= Labels/ Symbols -=-
Game games will have a label so well covered up you could be looking at it
and not even think to use it. Some games could just flat out say game Speed
like Trigger Man whose label is gameSpeed

gameSpeed
0027761c 3f800000 lui zero, $0000

Hyper Mode :)
2027761C 40000000

Slow Motion
2027761C 3F000000

One thing about Triggerman is that it's very well labeled, and you can many
address that will give you the same effect. Here are some examples

Dive always Slomo
00279a54 00000000 nop
20279a54 00000001

Throw always Slomo
00279a58 00000000 nop
20279a58 00000001

Slow Motion
00279b3c 00000000 nop
20279b3c 00000001
* All TriggerMan codes made by GMO


Some Games will take more looking into and test, especially RPGs
I'll take Xenosaga as an example
wee start out looking through the elf for symols such as gameSpeed
since i didn't find any reconize symbols i'll try the default speed
value and we come across some labels such as rate.0 and rate.1
lets test them out. I see a lower value in there also, but we don't
want no slow ass shit in the code!

rate.0
00364910 3f800000 .word $3f800000
00364918 3f000000 .word $3f000000

Hyper Mode
20364910 40000000
20364918 40000000
Testing... Works!




=-=Disabling Sub-Routines-=-
this were introduce by Nach Brenner of Xploderfreax
there are three (3) Main Routines that are almost quaranted to work
sceMcSync
sceGsSyncV
InvalidDCache | SyncDCache

Disabling Routine
1. Load the Elf - File in PS2DIS or IDA Pro
2. Jump to Label sceGsSyncV, sceMcSync, and InvalidDCache | SyncDCache
3. Disable It with

03e00008 jr ra
00000000 nop
or
03e00008 jr ra
24020001 addiu v0, zero, $0001



Example: Akira Psycho Ball NTSC-J
sceGsSyncV
0013c600 27bdffe0 addiu sp, sp, $ffe0
0013c604 ffb00000 sd s0, $0000(sp)

Faster Loading
2013c600 03E00008
2013c604 00000000


Example: GTA San Andreas NTSC
00548918 27bdffe0 addiu sp, sp, $ffe0
0054891c ffb00000 sd s0, $0000 (sp)

20548918 03e00008
2054891C 00000000
Result... Froze at Blue logo Screen

20548918 03e00008
2054891C 24020001
Result... blue rockstar icon
SAN ANDREAS IS A BAD EXAMPLE!!!!
but wait, we don't stop there!

Disable InvalidDCache | SyncDCache
2053C1D8 03E00008
2053C1DC 00000000
Testing... Works!

Faster Loading (final)
2053C1D8 03E00008
2053C1DC 00000000

GTA San Andreas PAL
Faster Loading :P
2053c2d8 03e00008
2053c2dC 00000000

For More Information on Stealing CPU time check out
http://nachbrenner.pcsx2.net/chapter2.html



-=- Disabling Vsync =-=
You are going to disable vSync under sceGsSyncV
This will not work on all game, but in many case it does get
the job done.ou need to test them game by game, it works wonders
on Wrestling games!

Example: Triggerman NTSC
sceGsSyncV
001ff8f0 27bdffe0 addiu sp, sp, $ffe0
001ff8f4 ffb00000 sd s0, $0000(sp)
001ff8f8 ffbf0010 sd ra, $0010(sp)
001ff8fc 0c07fb48 jal $001fed20 sceGsGetGParam
001ff900 00000000 nop
001ff904 0040802d daddu s0, v0, zero
001ff908 8e020008 lw v0, $0008(s0)
001ff90c 14400010 bne v0, zero, $001ff950
001ff910 00000000 nop
001ff914 0c0889ec jal $002227b0 VSync

Disable Vsync
201ff914 00000000


Example: Aliens Vs. Predator Extinction
sceGsSyncV
002aa268 27bdffe0 addiu sp, sp, $ffe0
002aa26c ffb00000 sd s0, $0000(sp)
002aa270 ffbf0010 sd ra, $0010(sp)
002aa274 0c0aa5ca jal $002a9728 sceGsGetGParam
002aa278 00000000 nop
002aa27c 0040802d daddu s0, v0, zero
002aa280 8e020008 lw v0, $0008(s0)
002aa284 14400010 bne v0, zero, $002aa2c8
002aa288 00000000 nop
002aa28c 0c0ad0ac jal $002b42b0 VSync

Disable VSync
202aa28c 00000000



=-=Credit-=-
Nach Brenner, iN tHE mIND..., Team CMP, CMX, and
Crash Test Dummies (CTD)