Page 1 of 1

GameMaker Basic Table

Posted: Wed Nov 03, 2021 10:00 am
by Cake-san
Thanks to @aSwedishMagyar tutorials & some trials & errors , this simple table/tool had been made.

viewtopic.php?f=10&t=17695
viewtopic.php?f=10&t=16018
viewtopic.php?f=10&t=15885

Note: This table only cover some gamemaker games & there're a few that I doesn't manage to make it work because my insufficient knowledge for older game on finding the nameindex & other stuff.

Update 1
- Added global var scanner (thanks to aSwedishMagyar)
- Fixed namelist scanner for a few games...
- etc

Re: GameMaker Basic Table

Posted: Wed Nov 03, 2021 6:24 pm
by aSwedishMagyar
Just gonna put mine in here as well.
This one doesn't auto-detect offsets so you'll need to know what each one is to modify for your game.
I'll append an explanation below over the weekend to go over what each offset represents.

Current Table:
GameMaker_Template(x32-x64)_aSwedishMagyar.CT
03-11-2021
v1.0
(26.49 KiB) Downloaded 5236 times

Current Options:
  • GameMaker Tools
    • Generate Records
      • Generate Object Variables
      • Generate Global Variables
    • Create Dump
      • Dump Script Names
      • Dump Object Names
      • Dump Object CCodes
      • Dump Names/Indexes

Re: GameMaker Basic Table

Posted: Wed Nov 03, 2021 7:28 pm
by SunBeam
Any example games you'd recommend to take these out for a spin? :)

Re: GameMaker Basic Table

Posted: Wed Nov 03, 2021 8:26 pm
by aSwedishMagyar
SunBeam wrote:
Wed Nov 03, 2021 7:28 pm
Any example games you'd recommend to take these out for a spin? :)
I believe Loop Hero, Astronarch, Hero Siege, Death's Gambit, Chronicon, The Swords of Ditto, and a few others will work directly with mine without serious modification but you may have to change the GM.Strings.IndexCorrection value. Some games, like Katana Zero, the order of the AOBs unfortunately finds the wrong section for the global variables so you may want to play around with that as well. You can easily find the global variables pointer by looping through the process at 4-8 bytes at a time (x32 or x64) and checking if it points to an instance of YYObjectBase.

Re: GameMaker Basic Table

Posted: Wed Nov 03, 2021 10:33 pm
by RTX_XXXX
some more games : 1-Dead State 2-Critadel ..

Re: GameMaker Basic Table

Posted: Thu Nov 04, 2021 5:03 pm
by Cake-san
SunBeam wrote:
Wed Nov 03, 2021 7:28 pm
Any example games you'd recommend to take these out for a spin? :)
Although there are a few older game that the table doesn't support because of name index handling is different, like deadbolt,.. most
older game like Hyper Light Drifter, Undertale , Nuclear Throne, etc works the way as it should...

Just let me know on what newer game this table doesn't work, though... :ph34r:
aSwedishMagyar wrote:
Wed Nov 03, 2021 8:26 pm
You can easily find the global variables pointer by looping through the process at 4-8 bytes at a time (x32 or x64) and checking if it points to an instance of YYObjectBase.
Haha, i never thought about that... added that feature into the table... thanks ^_^

Re: GameMaker Basic Table

Posted: Fri Oct 14, 2022 12:00 pm
by Icew0lf
aSwedishMagyar wrote:
Wed Nov 03, 2021 6:24 pm
Just gonna put mine in here as well.
This one doesn't auto-detect offsets so you'll need to know what each one is to modify for your game.
I'll append an explanation below over the weekend to go over what each offset represents.

Current Table:
GameMaker_Template(x32-x64)_aSwedishMagyar.CT


Current Options:
  • GameMaker Tools
    • Generate Records
      • Generate Object Variables
      • Generate Global Variables
    • Create Dump
      • Dump Script Names
      • Dump Object Names
      • Dump Object CCodes
      • Dump Names/Indexes
Thanks for your post. if i hit "Generate Global Variables" it just creates a pointer instead of a resultwindow. Anything i am missing?
Thanks in advance

Ice

Re: GameMaker Basic Table

Posted: Sat Dec 31, 2022 11:53 pm
by jgoemat
SunBeam wrote:
Wed Nov 03, 2021 7:28 pm
Any example games you'd recommend to take these out for a spin? :)
This is great! Zero Sievert with offset 0 is good. I created a table based on the template that has a script to only show the values I've found that are useful:

viewtopic.php?p=280779#p280779

You can call collectGlobalVariables() and then setup pointers using the values. For objects you need collectObjectNames(), collectObjectVariables("obj_player"), and collectObjectInstances("obj_player") to find and populate the addresses.

Re: GameMaker Basic Table

Posted: Sat Jan 21, 2023 8:23 am
by jgoemat
aSwedishMagyar wrote:
Wed Nov 03, 2021 6:24 pm
Just gonna put mine in here as well.
This one doesn't auto-detect offsets so you'll need to know what each one is to modify for your game.
I'll append an explanation below over the weekend to go over what each offset represents.
Thanks for the amazing table! In the most recent update to Zero Sievert (v0.28), they changed to 64 bit and I had to change this, I don't know if it is related to a new game maker version or just this game, but if anyone is having trouble with a newer game you might try this:

Code: Select all

    -- JASON: Change to 0x48 for 64 bit
    -- GM.Object.VarArray = targetIs64Bit() and 0x58 or 0x2C
    GM.Object.VarArray = targetIs64Bit() and 0x48 or 0x2C