diff --git a/docs/PORTING b/docs/PORTING new file mode 100644 index 00000000..7986ebb3 --- /dev/null +++ b/docs/PORTING @@ -0,0 +1,46 @@ +Some notes about porting DOSBox to systems with certain restrictions, +like handheld devices. + +If memory is a constraint: + - in paging.h reduce the size of the TLB: + #define TLB_SIZE (64*1024) + the 64 gives access to the first 256mb of linear memory + drawback: some protected mode games won't work then + gain: reduces memory requirements about ~15mb + TODO: limit vmemory access to the size of the TLB, + otherwise games which use >256mb vaddresses will crash badly + - in render.h lower the scaler integration: + #define RENDER_USE_ADVANCED_SCALERS 1 + or + #define RENDER_USE_ADVANCED_SCALERS 0 + drawback: complex scalers and the scaler cache are disabled, + be sure to test if this affects speed! + with define RENDER_USE_ADVANCED_SCALERS==0 most simple + scalers are disabled as well, some graphics modes won't + work due to reduced cache sizes + gain: ~2mb with RENDER_USE_ADVANCED_SCALERS==1 + ~5mb with RENDER_USE_ADVANCED_SCALERS==0 + - in dos_system.h reduce the drive cache entries: + #define MAX_OPENDIRS 256 + drawback: some apps might not work whith large directory trees + gain: ~1mb per mounted drive + - in vga.h reduce the size of the emulated graphics memory: + #define VGA_MEMORY (1*1024*1024) + drawback: some graphics modes won't work then + gain: reduces memory requirements about 1mb + TODO: remove the respective svga modes, adapt some svga registers + - remove the GUS emulation (gus.cpp, especially GUSRam[1024*1024] ) + drawback: no gravis ultrasound + gain: reduces memory requirements about 1mb + +If speed is a constraint: + - see if the simple core is faster, possibly remove the normal core + set the simple core as default + drawback: one game is known to not work with the simple core; + the simple core does only work for games which don't use paging + (when paging is requested the normal core is used automatically) + gain: the simple core should be somewhat faster + TODO: add possibility to easily remove the normal core, use fullcore fallback + - raise the default frameskip value + drawback: minor graphics smoothness loss for some games (video playback) + gain: reduces graphics load