mon / BemaniPatcher

Web based DLL binary patcher
MIT License
210 stars 135 forks source link

DDR X Series: Timing offset #284

Closed drmext closed 2 years ago

mon commented 2 years ago

Can I get a tiny tl;dr about the magic value 2116822084? This is a kinda awkward setup and I wonder if I can actually modify DllPatcher.js to make this automatic.

drmext commented 2 years ago
89 44 24 2c             mov    DWORD PTR [esp+0x2c],eax
7e 06                   jle    0xc
2b c6                   sub    eax,esi
89 44 24 2c             mov    DWORD PTR [esp+0x2c],eax
05 ff ff ff ff          add    eax,0xffffffff
89 44 24 2c             mov    DWORD PTR [esp+0x2c],eax
90                      nop
90                      nop
90                      nop

2116822084 is the value of the original code 44 24 2c 7e that is to be overwritten with the new forced offset. The game will crash if the first patch is turned off and the second patch is still modified.

mon commented 2 years ago

I started writing the feature to support the "ideal syntax"

{ offset: 0x43B3F, off: [0x44, 0x24, 0x2C, 0x7E], on: {
    type: "number",
    default: -1,
    min: -20,
    max: 20,
}},

...but in the end I think it's too much effort. This will be fine for now, I might fix it later if I get into the mood.