scanmem
scanmem copied to clipboard
GC bug: changing type from int8 to uint8 stops accepting new values
I added an address(type int8) in the lower window manually. The game addressed those value as unsinged so I changed the type to uint8 in the address list. The shown value changed(as expected) from -128 to the correct value 128. From this point on I am free to type any value and hit the enter key but.. the new value is NOT written into the memory. Instead the shown contempt switches back to the previous value. A quick look into the hexeditor proved also no change. Again using hexedit I can enter different values(in hex of course) and the new value is shown.
The only "fix" at the moment is to switch the type back to int8, type in the new value and switch back to uint8 to see the "correct" value.
Those odd behaviour also happens to the other uint sizes like uint16/32.
The issue here is that GC issues a write value unit8 addr
, but libsm only recognizes signed types in the write handler.
I'll add that to libsm, because I don't want GC to convert back the type and value to unsigned.
This behaviour is indeed broken for all the unsigned integers (and only them).