shark wrote:how about you start with a ramdisk and poke locations until you map some of them to concrete data (behaviours passing as features) so you actually have something to code/inject in the executable?
*squint* Are you describing the cheater/trainer type search through a process' memory for bytes that change at the same time (behavior) as when a given in-game feature (such as scrap count) changes (increasing/decreasing/equals), so a custom scrap function can be eventually injected (via patch or loader) that when called, locates and modifies those bytes as desired?
Linux is probably capable of assigning a region of memory already in-use by a process to a ram drive (which would allow hex editors to play with its contents), but generally this is the province of specalized processes like debuggers and cheaters/trainers.
shark wrote:if both clients synchronize the seed used for this randomization, they would get the same "random" result, meaning being in a identical game.
There's a seed that affects the sector tree (set once per game), and a seed that affects sector layout/events (changing each sector, possibly itself seeded/precalc'd with nodes of the tree). If the players never interacted to influence each other's states, synchronizing seeds would yield two players independently playing similar games. Beyond that, changes to individual values need to be tracked, queued, and forwarded for anything both players can see and change.
shark wrote:Disciples 2, HoMM3, MechWarrior 4 mods did it. A mod-unfriendly game is still perfectly moddable
I never said it was nigh impossible to do. I spelled out how it'd happen, which
does sound more daunting than "all you need to do is write a wrapper". What I said was that it's not worth the effort in
this case because there are easier options.
"But this isn't Grand Theft Auto. There's no need for a
Multi Theft Auto project to do an end run around engine complexity."
When I said "Even turning the saved game editor into a standalone game would be easier" I meant that it's a codebase already capable of reading resources and interpreting/displaying a saved game state. It wasn't meant to be playable (UI would need reworking for animation and such) but, had Overdrive not existed, extending it would still less taxing than taming memory.
shark wrote:something that greps /dev/mem but visually for the target process.
Windows...
App: Process Explorer - Can essentially run the 'strings' command against a process' memory.
App: CheatEngine
App: HxD - A hex editor that can mess with RAM.
App: OllyDbg - Debugger, has a window showing the attached process' memory.
App: Immunity Debugger (OllyDbg + python)
Maybe Paimei + PyDbg, never tried 'em.
Lnux...
Article: ServerFault - Dump a linux process' memory to a file.
Article: Stackexchange - How to read /proc/$pid/mem on linux
Apps: AskUbuntu - Game real-time modification utility
There are gdb frontends to make things visual, but I'm not familiar with debuggers on linux.