First post, by xor2003
I'm developing tool to simplify porting of DOS assembler code (including games) to modern platforms: https://github.com/xor2003/masm2c
(But I was not very succesful to implementing all the DOS INTs and hardware.)
So I tryed to use DOSBOX as a library. I mean real hardware is executing the game code https://github.com/xor2003/Bright-Eyes/blob/m … c/snake.cpp#L87, but when it needs DOS ints or some hardware like sound it will call dosbox.
So I used approach which I saw in another project:
I placed hook to dosbox after program is loaded into memory and before it actually starts: https://github.com/xor2003/Bright-Eyes/blob/m … xecute.cpp#L509
So DOSBox does not do instruction emulation of the game.
I faced the following issue:
The test game switched to CGA text mode 3. It prints characters directly to 0xB800 memory.
But I don't see anything. The screen is black.
I'm not good at DOSBox source code. I understand I should call some screen update periodically.
Looks like the
GFX_Events();
TIMER_AddTick();
is not enough.
Normal_Loop() is not called. Should I call it in separate thread?
Thank you in advance for pointing the problem.