First post, by ped7g
How I did detect problem (a bit longer description, sorry, just be patient):
I Got Geof Crammond's "Stunt car racer" (e-mail me at ped 7gods.org ... put @ after ped... for files).
This beauty does work under Win2k w/o dosbox too, but sometimes the keys does "stuck" and it does use PC Speaker, what I don't like.
Under dosbox it does work identically to original except the speaker is silenced (when emulation is off of course :)) and keys do work w/o "stucking". And this weird bug is added in DosBox:
When I ride Division 2 track "Roller Coaster", I have there plenty of "turbo nitro" ~75 at start of race.
When it goes down to 66 or 65, suddently it does drop to 05 in dosbox!
Under w2k it does work correctly (i.e. 64, 63, ...).
As I'm experienced x86 asm programmer, I do suspect some minor bug with flags updating after some type of SUB / DEC instruction, maybe BCD number format is used, and carry/zero flags are ok, but overflow looks to be used in this game.
Honestly, this is very vague guess, because the 65 number doesn't look to be special for me in any way, both in hexa, or BCD or dec... but I didn't work with x86 asm for some time, and maybe I'm just missing something obvious.
You should check your AAS/AAA/etc.. functions behaviour, both carry and overflow flag related. (overflow = auxiliary carry in x86 terminology I think, I'm still haunted by Z80 asm ... :D)
If you are sure you have correct emulation of those, I may even try to allocate some spare time, and debug into the game to find out exact instructions for decreasing the nitro value. I know that would help greatly to identify the problem, but it would take me probably several hours/couple of days, as I never spend too much time by hunting "pokes" and creating trainers for games, I loved to write my own code since the beginning. :))))
(if some old-school x86 experienced crack/trainer creator is reading this, and he didn't forget what tools are apropriate for such job, he may try to help me :) thanks)
Please, reply to my e-mail, if possible. :) Thanks.
... err, almost forget to post this:
DosBox 0.61 was used, with all CPU core options (normal/full/dynamic).
I'm not bothering to post my system info, as the game does work correctly w/o DosBox and the problem is 90% either CPU emulation, or cache/memory rewrites.. the second one would be probably visible in more titles, while the AC flag is very good candidate, as this one is never used by C/C++ compiler (as far, as I'm aware), and not many ASM programmers use it (I did use the AC behaviour for like 5 times in my life, and I wrote more than 2MB of ASM x86 sources back in those years).
--
it's not you, it's me.