The base instruction on here.
- Get the DOSBox source: Page / File
- Get the SDL win32 development libraries: Page / File
- Get the SDL_net win32 development libraries: Page / File
- Expand the DOSBox source and open dev\DosBox\visualc_net\dosbox.sln
- Add dev\SDL-1.2.11\include and dev\SDL_net-1.2.6\include to the include paths
- Add dev\DXSDK\Include to the include paths
- Turn off screen capture, set C_SSHOT 0 in config.h so we don’t need libpng
- Turn off internal debugger, set C_DEBUG 0 in config.h, so we don’t need curses support
- Remove zlib.lib, libpng.lib and curses.lib from the Linker Dependencies
TA-DA. Ok, so you have no debugging support, thus the reason for building you our version is reduced. But I added the following code, and got the information I was after.
In CPU_Core_Normal_Run (src\cpu\core_normal.cpp) before the DEBUG_HeavyIsBreakpoint call (outside of the #if C_DEBUG block).
Bit16u ecl_offset = LoadMw( BaseDS + 0x4FCD);
Bit32u dsbase = LoadMd(BaseDS );
if( dsbase == 0x43240000 )
if( ecl_offset != offset_last )
offset_last = ecl_offset;
The dsbase check was added because, for a span of time I was getting different results every second time around the loop, and I suspect that the instructions where not from my game code space, so I added a check that the data segment was my games before checking for changes. Worked a treat.