DOOM Eternal [Engine:idTech 7]

Upload your cheat tables here (No requests)
User avatar
SunBeam
Administration
Administration
Posts: 4765
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4403

Re: DOOM Eternal [Engine:idTech 7]

Post by SunBeam »

zsh wrote:
Tue Mar 24, 2020 10:51 pm
First off, awesome work you do here SunBeam. That being said, you can't switch difficulty to Ultra Nightmare in an existing save slot. You need to start a new save and select Ultra Nightmare at the beginning because it locks you into that difficulty.
That's from user perspective. If you check my post above, you'll see you can change it. Read along :)

Come to think about it, I think I can also find the spot to unlock it. Simply find all references to the idGameLocal::GetGameMode and see which one checks for Ultra Nightmare when I try to change mode in Settings ;) Should be simple enough.

How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1

User avatar
zsh
Noobzor
Noobzor
Posts: 7
Joined: Thu Jan 04, 2018 7:49 pm
Reputation: 0

Re: DOOM Eternal [Engine:idTech 7]

Post by zsh »

SunBeam wrote:
Tue Mar 24, 2020 10:53 pm
zsh wrote:
Tue Mar 24, 2020 10:51 pm
First off, awesome work you do here SunBeam. That being said, you can't switch difficulty to Ultra Nightmare in an existing save slot. You need to start a new save and select Ultra Nightmare at the beginning because it locks you into that difficulty.
That's from user perspective. If you check my post above, you'll see you can change it. Read along :)
I was simply referring to being able to change it by default in the game :)

User avatar
SunBeam
Administration
Administration
Posts: 4765
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4403

Re: DOOM Eternal [Engine:idTech 7]

Post by SunBeam »

SamIam76 wrote:
Tue Mar 24, 2020 7:03 am
Knightmare077 wrote:
Tue Mar 24, 2020 1:46 am
Alright Sun,

I kneel before your superior badassery.

If , when , you get a chance please look into the gore_neverFadeAndRemove option and see if you can get it functional.

It's like the command isnt tied to the games exe , calling the wrong memory address?! I'm not even sure I know what the heck I'm talking about but I've stared at this....and stared at this..I feel like I'm trying to decode the matrix and was unplugged while I was still inside.

🤯
Dear SunBeam,

thanks for your work!
I can completely follow Knightmare. We need that gore_never_FadeAndRemove command to work!!
It completely breaks atmosphere and looks cheap as hell when decals fade or burn that way. It's not a 2020 standard and nor it was in 1993!
It really could be that the game just doesn't accept that command. It was the same with Legacy Mod. First it worked, then after another patch it stopped working. So it had to be updated.
Maybe there is another command which already has the same functions!?

Thanks for help!
Alright.. let's try and do this. I'll cross-reference this with DOOM 2016 (which I still have installed). We'll see what comes out of it. Try to keep up.

Start game, attach x64dbg to it, then F9 till game is resumed. Then Symbols > right-click on 'doometernalx64vk.exe' and 'Follow in Disassembler'. Then right-click in this window and Search for > Current Module > String references. Let the process complete (takes 2-3 minutes), then in the Strings list paste in gore_neverFadeAndRemove. I see this:

Image

Double-click that so you follow it in the disassembler view. And we see this:

Image

The pointer right below that line is the CVar top; follow it in dump:

Image

From testing on the g_permaGodMode CVar, there were a lot of references to that CVar's top in the game code:

Image

The first one is the LEA you also saw for the gore_neverFadeAndRemove CVar. The rest of the MOVs are where the CVar is read in game code, thus where it's used.

Can't say the same for gore_neverFadeAndRemove CVar:

Image

There's only the LEA CVar reference, but no usage in game code. Now this is where DOOM 2016 should come in useful, where, I hope, I will find more than the initializer LEA.

Be back with more later,
Sun

User avatar
SunBeam
Administration
Administration
Posts: 4765
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4403

Re: DOOM Eternal [Engine:idTech 7]

Post by SunBeam »

Hahaha, one more update from the developers :P

User avatar
SunBeam
Administration
Administration
Posts: 4765
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4403

Re: DOOM Eternal [Engine:idTech 7]

Post by SunBeam »

Alright, found the CVar usage in DOOM 2016. Pray the code is somewhat identical in DOOM Eternal.

The way I noticed the "Keep The Dead 0.5" mod works is by tampering several CVars in a .cfg file (DOOMConfig.cfg) placed in the %UserProfile%\Saved Games\id Software\DOOM\base. Now.. since _emoose_'s is a proxy .dll (dinput8.dll), the patching, restrictions removal and all the other shit happens the moment the game is started. Meaning BEFORE the Engine is even initialized. Then I noticed the Engine basically reads the .cfg and string-resets the CVars the guy put there:

Code: Select all

ai_death_FadeDelay 60000
breakable_NoFadeAndRemove 1
gore_neverFadeAndRemove 1
mancubus_deadGKHideDemonTime 600000
mancubus_deadHideDemonTime 600000
mancubus_deadLavaHideDemonTime 600000
corpseManager_MaxTime 600000
ai_maxCorpses 300
corpseManager_MaxEntities 300
gore_maxLivingGoreEnts 500
corpse_optimzationStartTime 600
decal_goreBloodPoolPriority 100
decal_forcefadeoutduration 600000
g_bloodspherescale 35.0
g_gorebloodsphereexpanddistance 75
encounterscript_globalmaxai 48
decal_maxdecalsinradius 40
decal_maxdecalgroupingradius 400.0f
g_goresplashjointsused 32
r_decalclusteringnumdecalsperjob 48
g_breakabledebugdecals 1
r_decalLifetimeMultiplier 32
g_entitypoolmode 0
r_rendergatherdecalsgranularity 32
g_breakablefloorsplatfromceiling 1
Am assuming those are the CVars to be changed in DOOM 2016 to keep almost any mob in the map, without fading away or whatnot.

Now.. with my table.. you would have to be at main menu to activate the scripts. Which means the values above will NEVER be set, as the restrictions _emoose_'s dinput8.dll removes never happen (which should when the Engine runs the CVars reset, BEFORE initialization). So that might be one obstacle to get over, which I'm not sure these guys have realized so far :) Which brings me to yet again getting you guys to really start learning what's under the hood of some hack others created and not rely blindly on the fact that if you change 1 CVar, things will work in any DOOM game from now on "cuz it worked in DOOM 2016"..

Then the CVar in question these guys are looking for is 'gore_neverFadeAndRemove'. I highly doubt it's the command responsible for keeping the mobs in the map without fading, in absence of all of the others modified, but sure..

Image

There's only one reference of this CVar being used in the game code and that is the one above.

I'll look for the piece of code in Eternal and possibly patch it so it reads the CVar and makes use of it. But then if things don't actually work as "it worked in DOOM 2016", then I'm out :) Deal?

BR,
Sun

Knightmare077
Novice Cheater
Novice Cheater
Posts: 23
Joined: Sun Mar 22, 2020 6:23 pm
Reputation: 3

Re: DOOM Eternal [Engine:idTech 7]

Post by Knightmare077 »

Christ, Sun, How did you learn all this?

I had a barbarian best guess that it pointed to a incorrect address..

I'm telling you, It would've taken me a really,really long time to just come up with what you just shown , never mind even know where to begin to try and fix it?!

You said "you run the ropes here" no Sun.,...You are the damn ropes.

I think a large portion of the modding community rests squarely on your and a few others shoulders at this point as you know and I know the devs arent going to "support" mods. If they were ; they would've left this stuff in. Its fucking stupid that they strip it out, this is where the fun is after you've beat the game etc?!.

I hope you can fix the cvar bud, truly, and hopefully don't let us drive you nuts with requests to where you just quit.

User avatar
SunBeam
Administration
Administration
Posts: 4765
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4403

Re: DOOM Eternal [Engine:idTech 7]

Post by SunBeam »

Knightmare077 wrote:
Wed Mar 25, 2020 1:10 am
...
Do confirm what I said above. Those are all of the CVars you wanna mod in Eternal? Of course, excepting some mob-classified ones, which should be different in Eternal (e.g.: mancubus_deadGKHideDemonTime; does Eternal have this shit? I know the CVars are still there).

Knightmare077
Novice Cheater
Novice Cheater
Posts: 23
Joined: Sun Mar 22, 2020 6:23 pm
Reputation: 3

Re: DOOM Eternal [Engine:idTech 7]

Post by Knightmare077 »

I am the author of that mod, and deal. like I have a choice lol :) yes those are them

Knightmare077
Novice Cheater
Novice Cheater
Posts: 23
Joined: Sun Mar 22, 2020 6:23 pm
Reputation: 3

Re: DOOM Eternal [Engine:idTech 7]

Post by Knightmare077 »

SunBeam wrote:
Wed Mar 25, 2020 1:13 am
Knightmare077 wrote:
Wed Mar 25, 2020 1:10 am
...
Do confirm what I said above. Those are all of the CVars you wanna mod in Eternal? Of course, excepting some mob-classified ones, which should be different in Eternal (e.g.: mancubus_deadGKHideDemonTime; does Eternal have this shit? I know the CVars are still there).
yes most of them
gore_maxLivingGoreEnts (not in eternal)
g_bloodspherescale 35.0 (not in eternal)

mancubus stuff is present.

User avatar
SunBeam
Administration
Administration
Posts: 4765
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4403

Re: DOOM Eternal [Engine:idTech 7]

Post by SunBeam »

Knightmare077 wrote:
Wed Mar 25, 2020 1:13 am
I am the author of that mod, and deal. like I have a choice lol :) yes those are them
The name is a dead giveaway, so I knew it's you, LOL :P Alright, I'll see if I can find that code. But please read what I said earlier: this may need a proxy .dll, like infogram/emoose's so the restrictions happen before the Engine initializes. If the patches are applied early on, then the read of the .cfg and resetting of the CVars will go nicely before you even see the main menu :) Otherwise, I dunno. You'll see if they stick when changed directly in the console. I just hope the timers you set there aren't a ONE-TIME read and set..

P.S.: This is what the file should be called:

Image

The number of references to either config file is 8 in both DOOM and DOOM Eternal, which means the developers have not stripped any code. So loading the shit from the .cfg should work.

Knightmare077
Novice Cheater
Novice Cheater
Posts: 23
Joined: Sun Mar 22, 2020 6:23 pm
Reputation: 3

Re: DOOM Eternal [Engine:idTech 7]

Post by Knightmare077 »

SunBeam wrote:
Wed Mar 25, 2020 1:17 am
Knightmare077 wrote:
Wed Mar 25, 2020 1:13 am
I am the author of that mod, and deal. like I have a choice lol :) yes those are them
The name is a dead giveaway, so I knew it's you, LOL :P Alright, I'll see if I can find that code. But please read what I said earlier: this may need a proxy .dll, like infogram/emoose's so the restrictions happen before the Engine initializes. If the patches are applied early on, then the read of the .cfg and resetting of the CVars will go nicely before you even see the main menu :) Otherwise, I dunno. You'll see if they stick when changed directly in the console. I just hope the timers you set there aren't a ONE-TIME read and set..

I'll see if I can speak with emoose to make a proxy .dll from your file as I think it's your tables he did the legacy mod .dll with anyway.

User avatar
SunBeam
Administration
Administration
Posts: 4765
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4403

Re: DOOM Eternal [Engine:idTech 7]

Post by SunBeam »

Knightmare077 wrote:
Wed Mar 25, 2020 1:20 am
I'll see if I can speak with emoose to make a proxy .dll from your file as I think it's your tables he did the legacy mod .dll with anyway.
That I can code myself. Been talking to him a while ago, like 2-3 weeks, about something else. Not sure if he's gonna code a DLM for Eternal.

Knightmare077
Novice Cheater
Novice Cheater
Posts: 23
Joined: Sun Mar 22, 2020 6:23 pm
Reputation: 3

Re: DOOM Eternal [Engine:idTech 7]

Post by Knightmare077 »

Knightmare077 wrote:
Wed Mar 25, 2020 1:20 am
SunBeam wrote:
Wed Mar 25, 2020 1:17 am
Knightmare077 wrote:
Wed Mar 25, 2020 1:13 am
I am the author of that mod, and deal. like I have a choice lol :) yes those are them
The name is a dead giveaway, so I knew it's you, LOL :P Alright, I'll see if I can find that code. But please read what I said earlier: this may need a proxy .dll, like infogram/emoose's so the restrictions happen before the Engine initializes. If the patches are applied early on, then the read of the .cfg and resetting of the CVars will go nicely before you even see the main menu :) Otherwise, I dunno. You'll see if they stick when changed directly in the console. I just hope the timers you set there aren't a ONE-TIME read and set..

I'll see if I can speak with emoose to make a proxy .dll from your file as I think it's your tables he did the legacy mod .dll with anyway.
most of the commands for corpses etc carried from level to level in eternal...

The issue for me in 2016, Corpses couldn't be kept permanently due to spawn cap. game sees "dead a.i" as "active a.i" well certain pieces of enemies anyway, thus you met that limit at or around 25 dead a.i. a limit that couldn't be changed or ignored. so I worked around the spawn limitation using timers. Effectively postponing fade out for 1 minute. It seemed to work as best as possible, without breaking the game.

User avatar
sebastianyyz
Expert Cheater
Expert Cheater
Posts: 315
Joined: Sun Jul 09, 2017 3:33 am
Reputation: 53

Re: DOOM Eternal [Engine:idTech 7]

Post by sebastianyyz »

Alright, thanks to SunBeam you can use god mode on Ultra Nightmare, use the folowing code:

pm_disableNighmareGodMode 1

All credits go to SunBeam, thank you very much, you are the man


SunBeam do you have a similar table for Doom 2016?

User avatar
gir489
RCE Fanatics
RCE Fanatics
Posts: 661
Joined: Mon May 08, 2017 4:08 am
Reputation: 464

Re: DOOM Eternal [Engine:idTech 7]

Post by gir489 »

Code: Select all

{ Game   : DOOMEternalx64vk.exe
  Version: NODRM
  Date   : 2020-03-24
  Author : gir489

  Infinite red sword energy
}

[ENABLE]

aobscanmodule(RedSwordAmmo,DOOMEternalx64vk.exe,F3 0F 10 41 08 C3 CC CC CC CC CC CC CC CC CC F3) // should be unique
alloc(newmem,$1000,"DOOMEternalx64vk.exe"+15285B1)

label(code)
label(return)

newmem:
  mov [rcx+08], (float)3
code:
  movss xmm0,[rcx+08]
  jmp return

RedSwordAmmo:
  jmp newmem
return:
registersymbol(RedSwordAmmo)

[DISABLE]

RedSwordAmmo:
  db F3 0F 10 41 08

unregistersymbol(RedSwordAmmo)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "DOOMEternalx64vk.exe"+15285B1

"DOOMEternalx64vk.exe"+152859B: CC                       -  int 3 
"DOOMEternalx64vk.exe"+152859C: CC                       -  int 3 
"DOOMEternalx64vk.exe"+152859D: CC                       -  int 3 
"DOOMEternalx64vk.exe"+152859E: CC                       -  int 3 
"DOOMEternalx64vk.exe"+152859F: CC                       -  int 3 
"DOOMEternalx64vk.exe"+15285A0: 48 8B 05 59 CC C2 04     -  mov rax,[DOOMEternalx64vk.exe+6155200]
"DOOMEternalx64vk.exe"+15285A7: 83 78 08 00              -  cmp dword ptr [rax+08],00
"DOOMEternalx64vk.exe"+15285AB: 75 04                    -  jne DOOMEternalx64vk.exe+15285B1
"DOOMEternalx64vk.exe"+15285AD: 0F 57 C0                 -  xorps xmm0,xmm0
"DOOMEternalx64vk.exe"+15285B0: C3                       -  ret 
// ---------- INJECTING HERE ----------
"DOOMEternalx64vk.exe"+15285B1: F3 0F 10 41 08           -  movss xmm0,[rcx+08]
// ---------- DONE INJECTING  ----------
"DOOMEternalx64vk.exe"+15285B6: C3                       -  ret 
"DOOMEternalx64vk.exe"+15285B7: CC                       -  int 3 
"DOOMEternalx64vk.exe"+15285B8: CC                       -  int 3 
"DOOMEternalx64vk.exe"+15285B9: CC                       -  int 3 
"DOOMEternalx64vk.exe"+15285BA: CC                       -  int 3 
"DOOMEternalx64vk.exe"+15285BB: CC                       -  int 3 
"DOOMEternalx64vk.exe"+15285BC: CC                       -  int 3 
"DOOMEternalx64vk.exe"+15285BD: CC                       -  int 3 
"DOOMEternalx64vk.exe"+15285BE: CC                       -  int 3 
"DOOMEternalx64vk.exe"+15285BF: CC                       -  int 3 
}

Post Reply

Who is online

Users browsing this forum: Baidu [Spider], bbaas, Derionis, doc_haz, kaporalzer, Revve15, skyperion, zero4u