cheats: add notes for C4 and C5 codes (won't be implemented until needed) and implement C6 code (only for v1.54 ARDS)
This commit is contained in:
parent
6abf2b3454
commit
3da9f273d2
|
@ -78,6 +78,7 @@ void CHEATS::ARparser(CHEATS_LIST& list)
|
||||||
{
|
{
|
||||||
//primary organizational source (seems to be referenced by cheaters the most) - http://doc.kodewerx.org/hacking_nds.html
|
//primary organizational source (seems to be referenced by cheaters the most) - http://doc.kodewerx.org/hacking_nds.html
|
||||||
//secondary clarification and details (for programmers) - http://problemkaputt.de/gbatek.htm#dscartcheatactionreplayds
|
//secondary clarification and details (for programmers) - http://problemkaputt.de/gbatek.htm#dscartcheatactionreplayds
|
||||||
|
//more here: http://www.kodewerx.org/forum/viewtopic.php?t=98
|
||||||
|
|
||||||
//general note: gbatek is more precise with the maths; it does not indicate any special wraparound/masking behaviour so it's assumed to be standard 32bit masking
|
//general note: gbatek is more precise with the maths; it does not indicate any special wraparound/masking behaviour so it's assumed to be standard 32bit masking
|
||||||
//general note: <gbatek> For all word/halfword accesses, the address should be aligned accordingly -- OR ELSE WHAT? (probably the default behaviour of our MMU interface)
|
//general note: <gbatek> For all word/halfword accesses, the address should be aligned accordingly -- OR ELSE WHAT? (probably the default behaviour of our MMU interface)
|
||||||
|
@ -310,6 +311,31 @@ void CHEATS::ARparser(CHEATS_LIST& list)
|
||||||
st.loop.status = st.status;
|
st.loop.status = st.status;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0xC4:
|
||||||
|
//Rewrite Code (v1.54 only) (trainer toolkit codes)
|
||||||
|
//<gbatek> offset = address of the C4000000 code
|
||||||
|
//it seems this lets us rewrite the code at runtime. /his will be very difficult to emulate.
|
||||||
|
//But it would be possible: we could copy whenever it's activated and allow that to be rewritten
|
||||||
|
//we would try to select a special sentinel pointer which couldn't be confused for a useful address
|
||||||
|
if(!v154) break;
|
||||||
|
CHEATLOG("Unsupported C4 code");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 0xC5:
|
||||||
|
//If Counter (trainer toolkit codes)
|
||||||
|
//counter=counter+1, IF (counter AND YYYY) = XXXX ;v1.54
|
||||||
|
//http://www.kodewerx.org/forum/viewtopic.php?t=98 has more details, but this can't be executed readily without adding something to the cheat engine
|
||||||
|
if(!v154) break;
|
||||||
|
CHEATLOG("Unsupported C5 code");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 0xC6:
|
||||||
|
//Store Offset (trainer toolkit codes)
|
||||||
|
//<gbatek> C6000000 XXXXXXXX [XXXXXXXX]=offset
|
||||||
|
if(!v154) break;
|
||||||
|
x = lo;
|
||||||
|
_MMU_write32<ARMCPU_ARM7,MMU_AT_DEBUG>(x, st.offset);
|
||||||
|
break;
|
||||||
|
|
||||||
case 0xD0:
|
case 0xD0:
|
||||||
//Terminator (Special Codes)
|
//Terminator (Special Codes)
|
||||||
|
|
Loading…
Reference in New Issue