50 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
Some notes about porting DOSBox to systems with certain restrictions,
 | 
						|
like handheld devices.
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
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
 |