But the DashLaunch plugin is in place. Everyone could start using it. We just need cheat files.
So in IRC today the idea was getting kicked around and we really need to try and get the ball rolling here.
We need two types of people for this project:
1. Dev kit owners - who can poke memory addresses and document what they find.
2. JTAG owners who can take those addresses, write the cheat, and test it.
We can use this thread to build a team, not sure where we will do the actual code swapping. We'll see how many people we have. But we need to have people commit in this thread. As far as # of owners go JTAG > DevKit so if you have a devkit please strongly consider helping if you can.
All a commit means is we can send you info in the next week or so on the next steps. No contribution of time will be too small (or too big).
When replying to join please advise if you'll be a DevKit volunteer or a JTAG volunteer (or both)
Links...
Original site post for XPP
XPP pack (good readme info)
XPP uses a very simple cheat file system. Below is a copy of the authors "xppcodetypes.txt". Please comment below if you want to be a part building a cheat database for XPowerPlay. I'll send out PM's to those who do when we are ready for step 2.
Also hoping that if things start moving in the right direction we could have a plugin or module in FSD to handle cheats.
CODE
XPP codetypes (by the2000 [aka extra2000])
This document describes valid codetypes used by XPowerPlay.
**NOTE: All values of X, A, V, & N are in hexadecimal format unless specified
otherwise. Do not prepend values with any prefixes(0x, $, etc.).
================================================================================
Write Commands
================================================================================
0 = 8 bit write
1 = 16 bit write
2 = 32 bit write
Format:
XX AAAAAAAA VVVVVVVV
XX = 0/1/2
AAAAAAAA = address in memory
VVVVVVVV = value
VVVVVVVV is written to memory location AAAAAAAA.
Example:
2 85400010 00FF00FF
The code above writes 00FF00FF(in 32 bits) to 85400010.
================================================================================
And Commands
================================================================================
3 = 8 bit And
4 = 16 bit And
5 = 32 bit And
Format:
XX AAAAAAAA VVVVVVVV
XX = 3/4/5
AAAAAAAA = address in memory
VVVVVVVV = value
The value at memory location AAAAAAAA is bitwise anded with VVVVVVVV. The result
is written to memory location AAAAAAAA.
Example:
4 85400010 0F0F
The code above will obtain the 16 bit value at 85400010, then apply bitwise and
of 0F0F to that value. The resulting value is stored back 85400010 afterwards.
================================================================================
Or Commands
================================================================================
6 = 8 bit Or
7 = 16 bit Or
8 = 32 bit Or
Format:
XX AAAAAAAA VVVVVVVV
XX = 6/7/8
AAAAAAAA = address in memory
VVVVVVVV = value
The value at memory location AAAAAAAA is bitwise ored with VVVVVVVV. The result
is written to memory location AAAAAAAA.
Example:
6 85400010 FF
The code above will obtain the 8 bit value at 85400010, then apply bitwise or of
FF to that value. The resulting value is stored back 85400010 afterwards.
================================================================================
Xor Commands
================================================================================
9 = 8 bit Xor
A = 16 bit Xor
B = 32 bit Xor
Format:
XX AAAAAAAA VVVVVVVV
XX = 9/A/B
AAAAAAAA = address in memory
VVVVVVVV = value
The value at memory location AAAAAAAA is bitwise xored with VVVVVVVV. The result
is written to memory location AAAAAAAA.
Example:
B 85400010 FF008800
The code above will obtain the 32 bit value at 85400010, then apply bitwise xor
of FF008800 to that value. The resulting value is stored back 85400010
afterwards.
================================================================================
Increment Commands
================================================================================
C = 8 bit Increment
D = 16 bit Increment
E = 32 bit Increment
Format:
XX AAAAAAAA VVVVVVVV
XX = C/D/E
AAAAAAAA = address in memory
VVVVVVVV = value
The value at memory location AAAAAAAA is added with VVVVVVVV. The result is
written to memory location AAAAAAAA.
Example:
E 85400010 0000FFFF
The code above will obtain the 32 bit value at 85400010, 0000FFFF will be added
to that 32 bit value. The sum will be stored back to 85400010 afterwards.
================================================================================
Decrement Commands
================================================================================
F = 8 bit Decrement
10 = 16 bit Decrement
11 = 32 bit Decrement
Format:
XX AAAAAAAA VVVVVVVV
XX = F/10/11
AAAAAAAA = address in memory
VVVVVVVV = value
The value at memory location AAAAAAAA is subtracted with VVVVVVVV. The result is
written to memory location AAAAAAAA.
Example:
10 85400010 1010
The code above will obtain the 16 bit value at 85400010. That value will be
subtracted with 1010. The difference will be stored back to 85400010 afterwards.
================================================================================
Equal Test Commands
================================================================================
12 = 8 bit Equal
13 = 16 bit Equal
14 = 32 bit Equal
Format:
XX AAAAAAAA VVVVVVVV NN
XX = 12/13/14
AAAAAAAA = address in memory
VVVVVVVV = value
NN = number of lines to skip/apply
If the value at memory location AAAAAAAA is equal to VVVVVVVV, XPP will
apply the NN lines of codes directly below this code. Else, NN lines of codes
directly below this code will be skipped.
Example:
12 85400010 AA 01
02 8540FF70 0098967F
The code above will obtain the 8 bit value at 85400010. If the value is equal to
AA, then the code below it will be executed. Otherwise it will be skipped.
================================================================================
Not Equal Test Commands
================================================================================
15 = 8 bit Not Equal
16 = 16 bit Not Equal
17 = 32 bit Not Equal
Format:
XX AAAAAAAA VVVVVVVV NN
XX = 15/16/17
AAAAAAAA = address in memory
VVVVVVVV = value
NN = number of lines to skip/apply
If the value at memory location AAAAAAAA is not equal to VVVVVVVV, XPP will
apply the NN lines of codes directly below this code. Else, NN lines of codes
directly below this code will be skipped.
Example:
15 85400010 AA 02
01 8540FF70 0098
01 8540FF72 967F
The code above will obtain the 8 bit value at 85400010. If the value is not
equal to AA, then the 2 codes below it will be executed. Otherwise, these codes
will be skipped.
================================================================================
Greater Than Test Commands
================================================================================
18 = 8 bit Greater Than
19 = 16 bit Greater Than
1A = 32 bit Greater Than
Format:
XX AAAAAAAA VVVVVVVV NN
XX = 18/19/1A
AAAAAAAA = address in memory
VVVVVVVV = value
NN = number of lines to skip/apply
If the value at memory location AAAAAAAA is greater than to VVVVVVVV, XPP will
apply the NN lines of codes directly below this code. Else, NN lines of codes
directly below this code will be skipped.
Example:
19 85400010 AAFF 04
00 8540FF70 00
00 8540FF71 98
00 8540FF72 96
00 8540FF73 7F
The code above will obtain the 16 bit value at 85400010. If the value is greater
than AAFF, then the 4 codes below it will be executed. Otherwise, these codes
will be skipped.
================================================================================
Less Than Test Commands
================================================================================
1B = 8 bit Less Than
1C = 16 bit Less Than
1D = 32 bit Less Than
Format:
XX AAAAAAAA VVVVVVVV NN
XX = 1B/1C/1D
AAAAAAAA = address in memory
VVVVVVVV = value
NN = number of lines to skip/apply
If the value at memory location AAAAAAAA is less than to VVVVVVVV, XPP will
apply the NN lines of codes directly below this code. Else, NN lines of codes
directly below this code will be skipped.
Example:
1C 85400010 AAFF 04
00 8540FF70 00
00 8540FF71 98
00 8540FF72 96
00 8540FF73 7F
The code above will obtain the 16 bit value at 85400010. If the value is less
than AAFF, then the 4 codes below it will be executed. Otherwise, these codes
will be skipped.
================================================================================
Multi-write Commands (Condensed Codes)
================================================================================
1E = 8 bit Less Than
1F = 16 bit Less Than
20 = 32 bit Less Than
Format:
XX AAAAAAAA VVVVVVVV NN SSSS IIII
XX = 1E/1F/20
AAAAAAAA = initial address in memory
VVVVVVVV = initial value value
NN = number of times to write
SSSS = offset from one code to the next
IIII = increment of one value to the next
VVVVVVVV will be written to AAAAAAAA. This will be done NN times, while
incrementing AAAAAAAA with SSSS every iteration, and incrementing VVVVVVVV with
IIII every iteration.
Example:
1F 82550010 0000 04 2000 1000
The code above expands to:
1 82550010 0000
1 82552010 1000
1 82554010 2000
1 82556010 3000
