2009-05-03 01:02:35 +02:00
|
|
|
Some notes about porting DOSBox to systems with certain restrictions,
|
|
|
|
like handheld devices.
|
|
|
|
|
2009-10-09 08:22:57 +02:00
|
|
|
General:
|
|
|
|
- depending on where you start off with the port, assure that the
|
|
|
|
config.h entries are correct/exhausting, like GCC_ATTRIBUTE is
|
|
|
|
required (struct packing) but is undefined if you base the port
|
|
|
|
on msvc sources which have a special config.h
|
|
|
|
|
2009-05-03 01:02:35 +02:00
|
|
|
If memory is a constraint:
|
|
|
|
- in paging.h out-comment the USE_FULL_TLB define to enable special
|
|
|
|
TLB linking code that uses less memory
|
|
|
|
drawback: none (the code is not heavily tested though)
|
|
|
|
gain: reduces memory requirements about ~15mb
|
|
|
|
- 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 with large directory trees
|
|
|
|
gain: ~1mb per mounted drive
|
|
|
|
- remove the GUS emulation (gus.cpp, especially GUSRam[1024*1024] )
|
|
|
|
drawback: no gravis ultrasound
|
|
|
|
gain: reduces memory requirements about 1mb
|
|
|
|
- reduce the size of the emulated graphics memory:
|
|
|
|
see the memory sizing in SVGA_Setup_*, especially the defaults
|
|
|
|
in vga_s3.cpp's SVGA_Setup_S3Trio
|
|
|
|
drawback: some graphics modes won't work then
|
|
|
|
gain: reduces memory requirements
|
|
|
|
TODO: fully check this, introduce hard limits
|
|
|
|
|
|
|
|
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
|