It's been a 1.5 years ago that I haven't put my hands on this game - I re-downloaded CODEX v1.2 + updates 1.3&1.31 and I wanted to modify Assembly-CSharp.dll to enable the gui console and what a surprise when I came across this:
Code: Select all
if (Game.gameType == Game.GAME_TYPE.RECORD && (VInput.Console.WasPressed || (VInput.ConsoleButton1.IsPressed && VInput.ConsoleButton2.WasPressed)))
{
this.console.GetComponent<GuiConsole>().isVisible = !this.console.GetComponent<GuiConsole>().isVisible;
Which means that the gui console code was already there(or CODEX team would have added it? I doubt). All what you have to do is to press the Tilde (~) key and the gui console should appear. In fact it still will not, because of this:
Game.gameType == Game.GAME_TYPE.RECORD
There are two 'game' types:
Code: Select all
// Token: 0x02000AAE RID: 2734
public enum GAME_TYPE
{
// Token: 0x04002AF4 RID: 10996
DEFAULT,
// Token: 0x04002AF5 RID: 10997
RECORD
}
It is 4bytes value, 0 for DEFAULT and 1 for RECORD
Code: Select all
// Game.GAME_TYPE
// Token: 0x04002AF4 RID: 10996
public const Game.GAME_TYPE DEFAULT = 0;
Code: Select all
// Game.GAME_TYPE
// Token: 0x04002AF5 RID: 10997
public const Game.GAME_TYPE RECORD = 1;
So according to the previous code, if the game type is RECORD, we'll be able to enable gui console by using the Tilde (~) key. And fortunately, this is something that we can deal with CE.
As showed on this capture, EAX has our current game type value which is 0 (DEFAULT). We can operate our cheat on that
cmp eax,01
and change 01 into 0 or on that
jne (jump if not equal) and change it into
je (jump if equal) or just nop it.
Why I'm telling you all of this? Because I already uploaded the modified Assembly-CSharp.dll for v1.31 (Steam & GOG), so my question is if the code was already there, what could I have edited in the .dll that I had uploaded?
And also to say that if you have v1.31 of the game and want to enable the gui console, you don't need that modified .dll but just CE and this bit of script.
Code: Select all
{ Game : Shadows Awakening The Chromaton Chronicles
Version: v1.31 incl. DLC
Date : 2020-07-03
Author : Fantomas
}
[ENABLE]
//GuiMain:Update+86a
aobscanregion(guiConsole,GuiMain:Update,GuiMain:Update+adf,83F8)
guiConsole+02:
db 00
registersymbol(guiConsole)
[DISABLE]
guiConsole+02:
db 01
unregistersymbol(guiConsole)
{
// ORIGINAL CODE - INJECTION POINT: GuiMain:Update+86a
24907BC8: 48 8B 04 25 70 1A 8C 23 - mov rax,[238C1A70]
24907BD0: 48 8B C8 - mov rcx,rax
24907BD3: 48 83 EC 20 - sub rsp,20
24907BD7: 83 38 00 - cmp dword ptr [rax],00
24907BDA: 49 BB 82 7E 90 24 00 00 00 00 - mov r11,0000000024907E82
24907BE4: 41 FF D3 - call r11
24907BE7: 48 83 C4 20 - add rsp,20
24907BEB: C6 86 D0 01 00 00 01 - mov byte ptr [rsi+000001D0],01
24907BF2: B8 B0 DC DC 14 - mov eax,14DCDCB0
24907BF7: 48 63 00 - movsxd rax,dword ptr [rax]
// ---------- INJECTING HERE ----------
24907BFA: 83 F8 01 - cmp eax,01
24907BFD: 0F 85 F7 00 00 00 - jne 24907CFA
// ---------- DONE INJECTING ----------
24907C03: 48 8B 04 25 30 D4 E2 14 - mov rax,[14E2D430]
24907C0B: 48 8B C8 - mov rcx,rax
24907C0E: 48 83 EC 20 - sub rsp,20
24907C12: 83 38 00 - cmp dword ptr [rax],00
24907C15: 49 BB 10 41 33 22 00 00 00 00 - mov r11,0000000022334110
24907C1F: 41 FF D3 - call r11
24907C22: 48 83 C4 20 - add rsp,20
24907C26: 85 C0 - test eax,eax
24907C28: 0F 85 4E 00 00 00 - jne 24907C7C
24907C2E: 48 8B 04 25 50 D7 E2 14 - mov rax,[14E2D750]
}