Cheating

IMPORTANT NOTE:
This page, as stated below, has to do with cheating in the game through use of third-party programs to manipulate data in the game. For the most part, changing things in-game with Cheat Engine is unlikely to have an adverse effect, but keep in mind that any issues encountered after cheating might not be legitimate "bugs" in the game, so please consider that before submitting such reports to Sierra.

Introduction
As Raphael367 states in his walkthrough, Sierra Lee doesn't mind cheating, but, on the other hand, she doesn't use this program, so she can't give support to it. You can use this page is that your intention, but all the text below have been created by Lunasmeow. He can be contacted in his wall.

A quick and simple guide to cheating in RPGMaker Games without having to do the math yourself. Especially since sometimes the math just flat out doesn't work, as there have been games where (value*2)+1 didn't find what I needed. Oddly enough, it was only on random variables as the math did usually work on the majority of things. But those small random errors made me try and find a better way.

Using Cheat Engine
There's actually an easy way to use Cheat Engine with RPG maker games... a script you use to make it search correctly for those games alone so you don't have to use binary and get millions of hits.

Games with RPG VX ACE or normal VX. People often tell you to search for (value*2)+1. So if you're looking for 123 gold that you want to change, search for 247. But if you wish to use this custom type (so you don't have to do that *2 stuff) then do the following:


 * 1) Start Cheat Engine.
 * 2) Open any process.
 * 3) Right-click the "value type" dropdown menu box.
 * 4) Click "define new custom type (Auto Assembler)".
 * 5) Delete and replace the existing script with the script posted here.
 * 6) Click OK.
 * 7) You can now search for the values as they appear! No need to double and add one or anything like that.

Note: I save this as RPG VX type, and it will open with Cheat Engine forever after as another type option. Easy-peasy. Have fun cheating RPGMaker games everyone!

Note2: For some reason I can't seem to get the formatting on this wiki to leave my formatting alone and make this code view properly. So I'll be adding an image that shows where the line breaks should be so that they can be entered manually. The good thing is that it only needs to be done once! -The image isn't actually needed anymore with the addition of Note3, but I'll leave it up in case someone screws up the script here by accident so it can be fixed.

Note3: Turns out that you can just click the "Edit" option on the page and copy the script out of there. The formatting is right inside. Just make sure you don't accidentally change it and mess up the code for anyone else!

Note4: Using the preformatted tags (pre) -- should be able to copy and paste without editing.

Game's Reaction
In some cases the game will notice that you have cheated and react to it:
 * You may miss the Incubus King armor from the Deep Cache, if Simon's level is 40 or greater, or the party's Sx is 100,000 or greater - though you miss it anyway if you don't get it on the first trip through Devil's Pass.
 * Dialogue from the old man in Yhilin Outskirts about whether you are doing well will be different.
 * If you try to get an investment that requires an impossible amount of ProN, the game creator will encourage you not to cheat at this part ("Think of the economic stuff as part of the plot!")
 * If you defeat the Rodak Elite during the Trials of Orcish Strength, the hidden Orcent Fights variable is reset to 0. This has the effect of lowering your prize money to 900 Sx, which is 1100 Sx less than if you had lost to the Elite.

The Script:
alloc(TypeName,256) alloc(ByteSize,4) alloc(PreferedAlignment, 4) alloc(ConvertRoutine,1024) alloc(ConvertBackRoutine,1024)

TypeName: db 'RPG VX type',0

ByteSize: dd 4

PreferedAlignment: dd 1

//The convert routine should hold a routine that converts the data to an nteger (in eax) //function declared as: stdcall int ConvertRoutine(unsigned char *input);

//Note: Keep in mind that this routine can be called by multiple threads at the same time.

ConvertRoutine: [32-bit] push ebp mov ebp,esp push ecx mov ecx,[ebp+8] [/32-bit]

//at this point ecx contains the address where the bytes are stored

//put the bytes into the eax register mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time) shr eax,1 //shift right by 1 bit (divide by 2)

//and now exit the routine [64-bit] ret [/64-bit] [32-bit] pop ecx pop ebp ret 4 [/32-bit]

//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value) //function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output); ConvertBackRoutine: [32-bit] push ebp mov ebp,esp push edx //save the registers push ecx mov edx,[ebp+0c] mov ecx,[ebp+08] [/32-bit]

//at this point edx contains the address to write the value to //and ecx contains the value

push eax push edx

mov edx,[edx] //edx now contains the original value and edx,1 //only save the first bit

mov eax,ecx //eax gets the user input value shl eax,1 //shift left by 1 bit (multiply by 2) or eax,edx //add the bits of the original value

pop edx mov [edx],eax //write the new value into the old value pop eax

[64-bit] //everything is back to what it was, so exit ret [/64-bit]

[32-bit] //cleanup first pop ecx pop edx pop ebp ret 8 [/32-bit]

Variable names
Collected by Omega2501 and shared in the blog. They can be modified by using saveeditonline.com.


 * Var 10 = ProN
 * Var 11 = Army Size
 * Var 12 = Army Quality
 * Var 15 = Social
 * Var 16 = Religion
 * Var 17 = Economy
 * Var 19 = Trin Copies
 * Var 20 = Trin Max
 * Var 29 = Chapter 2 Travel Timer
 * Var 30 = Withered Mountain Acceptance
 * Var 44 = Jade Sabatoge
 * Var 45 = Yhilin Poverty
 * Var 49 = Empress Approval
 * Var 52 = Orgasmic Empire Physical Training
 * Var 53 = Orgasmic Empire Mental/Sex Training
 * Var 57 = Simon Path Day
 * Var 66 = Battle of Yhilin: Victory Points
 * Var 67 = Battle of Yhilin: Collateral Damage
 * Var 68 = Battle of Yhilin: Chaos
 * Var 69 = Battle of Yhilin: Enemy Forces
 * Var 70 = Yhilin Acceptance
 * Var 72 = Seed Orcs
 * Var 73 = Discretionary Fund
 * Var 74 = Orc Strength
 * Var 75 = Orc Intelligence
 * Var 76 = Orc Discipline
 * Var 77 = Orc Sapience
 * Var 78 = Orc Attractiveness
 * Var 79 = Orc MAG
 * Var 81 = Ardoheim
 * Var 82 = Yhilin
 * Var 83 = Aram
 * Var 84 = Eustrin
 * Var 85 = Zirantia
 * Var 86 = Darghelon
 * Var 87 = Gheldaron
 * Var 89 = Ghenalon
 * Var 92 = Tatseni
 * Var 93 = Stenai
 * Var 94 = Orgasmic Empire
 * Var 96 = Chalice States
 * Var 97 = New Givini
 * Var 98 = Tak'Kan
 * Var 101 = Aka
 * Var 103 = Yarra
 * Var 105 = Qum
 * Var 107 = Robin
 * Var 109 = Hilstara
 * Var 111 = Megail
 * Var 113 = Trin
 * Var 115 = Janine
 * Var 117 = Carina
 * Var 119 = Sarai
 * Var 121 = Altina
 * Var 123 = Varia
 * Var 125 = Esthera
 * Var 127 = Nalili
 * Var 129 = Balia
 * Var 131 = Vhala
 * Var 133 = Dari
 * Var 135 = Ginasta
 * Var 137 = Lynine
 * Var 139 = Orilise
 * Var 141 = Wynn
 * Var 143 = Uyae
 * Var 145 = Elleani
 * Var 147 = Riala
 * Var 149 = Iris
 * Var 156 = Mestan
 * Var 157 = Neranda
 * Var 161 = Elf Investigation
 * Var 164 = Aka's Storgan
 * Var 167 = Slum Petition Fund
 * Var 168 = Zirantia Investigation
 * Var 169 = Simon's Anger at Wynn
 * Var 179 = Trade Negotiations
 * Var 181 = Eustrin Impact
 * Var 184 = Border Incident
 * Var 186 = War Preparations
 * Var 187 = Arclent Acceptance
 * Var 188 = 3rd Arclent War: Army Extensions
 * Var 189 = 3rd Arclent War: Instability
 * Var 190 = 3rd Arclent War: IKD Morale
 * Var 191 = 3rd Arclent War: Yhilin CD
 * Var 192 = 3rd Arclent War: Aram CD
 * Var 193 = 3rd Arclent War: Stineford CD
 * Var 194 = 3rd Arclent War: Ardoheim CD
 * Var 195 = 3rd Arclent War: Zirantia CD
 * Var 196 = 3rd Arclent War: IKD CD
 * Var 197 = 3rd Arclent War: Aramite Front
 * Var 198 = 3rd Arclent War: Stineford Preparations
 * Var 199 = 3rd Arclent War: Yhilin Coup
 * Var 201 = Orc Summit
 * Var 208 = Social Reserves
 * Var 209 = Economic Reserves