static void ModifyCheat(int num) { MemoryPatch patch = MDFNI_GetCheat(num); patch = GetCheatFields(patch); MDFNI_SetCheat(num, patch); }
static void ModifyCheat(int num) { char *name; char buf[256]; uint32 A; uint64 V; uint64 compare; char type; int status; unsigned int bytelen; bool bigendian; MDFNI_GetCheat(num, &name, &A, &V, &compare, &status, &type, &bytelen, &bigendian); CHEAT_printf("Name [%s]: ",name); GetString(buf,256); /* This obviously doesn't allow for cheats with no names. Bah. Who wants nameless cheats anyway... */ if(buf[0]) name=buf; // Change name when MDFNI_SetCheat() is called. else name=0; // Don't change name when MDFNI_SetCheat() is called. CHEAT_printf("Address [$%08x]: ",(unsigned int)A); A=GetUI(A); CHEAT_printf("Byte length [%d]: ", bytelen); bytelen = GetUI(bytelen); if(bytelen > 1) { CHEAT_printf("Big endian? [%c]: ", bigendian ? 'Y' : 'N'); bigendian = GetYN(bigendian); } else bigendian = 0; CHEAT_printf("Value [%03lld]: ",(unsigned int)V); V=GetUI(V); do { CHEAT_printf("Type('R'=replace,'S'=Read Substitute(or 'C' with compare)) [%c]: ",type); type = toupper(CHEAT_getchar(type)); } while(type != 'R' && type !='S' && type !='C'); if(type == 'C') { CHEAT_printf("Compare [%03lld]: ",compare); compare = GetUI(compare); } CHEAT_printf("Enable? "); status = GetYN(status); MDFNI_SetCheat(num, name, A, V, compare, status, type, bytelen, bigendian); }