DOSXBox 286/386 PC Emulator port for XBox v5

Many thanks to J-Red for another great skin!

What's New :

 - Implemented DosBox 0.62 sources 

 - Added standard XPort GUI

 - Removed SDL 

 - Upload/Download configurations to/from via GUI

Important Notes

If you are unfamiliar with DOSBox, then read the README_DOSBOX.TXT file.  Pay 
particular attention to the syntax for mounting drives and images.  The GUI should
facilitate most user needs, but if you need to do something very specific, then
read the DOSBox docs.

Even though you can still browse your Samba/Relax shares, you cannot set a network
directory as any of your virtual DOS drives.  You can only mount directories on
your XBox hard drive or CDRom drive as virtual DOS drives.

There is currently no truly functional network support implemented.

There is no modem, IPX, or direct serial support.

If you wish to use a regular, original game CD then place it in the XBox CDROM drive
and start DOSXBox.  When you start the emulation, the CD will be mounted as the E
drive (this drive letter can be changed on the Game Configuration screen.)  You
should be able to use it as you normally would.

If you have a CD/DVD disc in UDF format, then browse to the R: drive in the GUI and
you should be able to see the contents of that disc.  You can mount directories on 
the R drive in the same way you would mount the directories on your XBox C,E,F,G 

When setting the Cycle Up/Cycle Down amounts on the Game Configuration screen,
keep in mind that values less than 100 indicate a percentage while values
greater than 100 indicate an exact amount.  So, for example, if your Cycle Up
is 500 and Cycle Down is 20, then every time you perform a Cycle Up, the number
of cycles will increase by exactly 500.  Every time you perform a Cycle Down,
the number of cycles will decrease by 20%.  

I suggest you gradually cycle down first when fine-tuning a game/program.  
If it is not tuning correctly, then try cycling up.  Also remember to 
use the frameskip on CPU-intensive games.

You can assign any combination of the mouse, joystick1, and joystick2 to the left 
or right analog sticks via the Game Configuration menu.  

If you have a USB mouse plugged in, then it will always control the DOSXBox mouse.  

Assigning the joysticks to the left or right analog sticks will allow analog 
control for the virtual joysticks.  

When you assign the "Joystick 1 Up", "Joystick 1 Down", etc commands to XBox 
buttons (like the DPAD) they represent the max directional value.  So if you have 
assigned "Joystick 1 Up" to the DPAD Up button, then whenever you press the DPAD Up, 
it will indicate that you are pushing the virtual analog joystick all the way up.  

Cheat code searching is off by default.  You can enable it per-game on the 
Game Configuration menu.  When it is enabled, there will be a slight delay during
the virtual DOS bootup during which time the cheat system will be enabled.  Also
bear in mind that it's very possible that any cheat codes you create may become
invalid during gameplay because the emulated memory system can re-allocate the
existing memory to a different location.  If your game is crashing a lot when
you have cheat codes on, then this is most likely the reason why.

Default Keymappings

Left Trigger + DPAD Up    - CPU Cycles Increase
Left Trigger + DPAD Down  - CPU Cycles Decrease
Left Trigger + DPAD Right - Frameskip Increase
Left Trigger + DPAD Left  - Frameskip Decrease

These are, of course, redefinable in the GUI.

Upload/Download Configurations

This is a new GUI feature that allows you to share your configuration files with
the rest of the world.  

At the time of this version, there are only a few configuration files available 
on the website.  Once you have a game tweaked and working well, please take a few 
moments to upload the configuration.  This is as simple as selecting the "Upload" 
option on the Game Configuration menu.  Downloading a configuration can be 
accomplished in very much the same manner by selecting the "Download" option.

When prompted for the name during an upload, please make it as descriptive as

Stella, Gnuboy, SMSPlus, FCEUltra, HUGO, NeoPop, DGen, Bochs, HUGO-CD,
FMSXBox, Bliss, WinSTon, Gens, Z26X, StepmaniaX, PCSXBox, XBoyAdvance,
DOSXBox, AtariXLBox, MirrorMagicX, KoboX, MaelstromX, MarblesX, Vice64X,
Vice20X, VicePETX, KegsX, XPired, AdamX, WonderSwanX, BeatsOfRageX,
PowermangaX, LynxBox, BlueMSXBox, GladiatorX, AmphetamineX, StarfighterX,
PachiX, BlobWarsX, OdysseyX, ArnoldX, X68000X, WinUAEX
what's next?



DOSXBox 286/386 PC Emulator port for XBox v3

What's New :

 - Implemented DosBox 0.60 sources (preliminary DPMI support)

When you start DOSXBox v3, you should see a screen telling you to
press A or B for DPMI/Non-DPMI support.  Some games only work with
DPMI enabled.  Some only work with it disabled.  

Stella, Gnuboy, SMSPlus, FCEUltra, HUGO, NeoPop, DGen, Bochs, HUGO-CD,
FMSXBox, Bliss, WinSTon, Gens, Z26X, StepmaniaX, PCSXBox, XBoyAdvance,
DOSXBox, AtariXLBox, MirrorMagicX, KoboX, MaelstromX, MarblesX, Vice64X,
Vice20X, VicePETX, KegsX, XPired, AdamX...
what's next?



DOSXBox 286/386 PC Emulator port for XBox v2

What's New :

 - ISO9660 support (read regular data CDs in XBox DVD-ROM drive)

 - Map keyboard keys to joypad buttons

 - Control mouse via joypad analog stick

 - Flip X/Y axis direction on joypad and mouse controls

 - Flip analog stick control (default is joystick on left analog, mouse on right ;
   flipping means joystick controler on right analog and mouse control on left)

 - Change mouse sensitivity on-the-fly

 - Re-scan CD after inserting another

 - Read/write config files on-the-fly

Usage Notes :  

Almost all of the keyboard commands to do things like resizing the screen, etc are now
locked until you toggle the locking mode.  This is done via

CTRL-ALT-BACKSPACE ( locks config, unlocks config )

Once the locking mode is unlocked, you can execute the following keyboard commands:

CTRL-UP_ARROW    - Move Screen Up
CTRL-DOWN_ARROW  - Move Screen Down
CTRL-LEFT_ARROW  - Move Screen Left
CTRL-RIGHT_ARROW - Move Screen Right

ALT-UP_ARROW    - Strech Screen Up
ALT-DOWN_ARROW  - Strech Screen Down
ALT-LEFT_ARROW  - Strech Screen Left
ALT-RIGHT_ARROW - Strech Screen Right

CTRL-ALT-1 - Flip Joystick X axis direction
CTRL-ALT-2 - Flip Joystick Y axis direction
CTRL-ALT-3 - Flip Mouse X axis direction
CTRL-ALT-4 - Flip Mouse Y axis direction
CTRL-ALT-5 - Flip joystick/mouse controls on left/right analog sticks
CTRL-ALT-6 - Decrease Mouse Sensitivity
CTRL-ALT-7 - Increase Mouse Sensitivity

The following key commands will always work, regardless of whether you are in locked mode
or not:

CTRL-ALT-W - Write the currently defined config file (default is E:\GAMES\DOSXBOX\DEFAULT.CFG )
             When you read in a config file, that file becomes the new currently defined
             config file and will be written to when you press CTRL-ALT-W

CTRL-ALT-C - Re-scan inserted ISO9660 CD

There is a new option to the command-line "CONFIG" command called -readconf.  Use it 
the same way as you use -writeconf :

config -readconf d:\spacequest4.cfg

When you use the "config -readconf" command, your default config file is set to the value
you specified.  In the above example, "d:\spacequest4.cfg" becomes your new default config file.

In order to assign keyboard keys to your XBox controllers, you have to hand-edit the config
files.  Let's say that you have written a config file to d:\spacequest4.cfg and you want to 
remap the "Escape" key to the "A" button.  First, load up d:\spacequest4.cfg into a text
editor (e.g. notepad ) and look for the line with "xbox_1_BUTTON_A".  This identifies the
"A" button on XBox controller #1.  Now look up the value for the "Escape" key in the 
"keyboard_defs.txt" (included in the package).  The names should be self-explanatory.  
In this example, we find the "SDLK_ESCAPE" key is mapped to value 27.  So we change the 
line in d:\spacequest4.cfg to read "xbox_1_BUTTON_A=27".  Simple.

There are two special key definitions for the left and right mouse buttons.  They are:

SDLK_KP_DIVIDE		= 267 ( Left Mouse Button )
SDLK_KP_MULTIPLY	= 268 ( Right Mouse Button )

You can assign those values to an XBox controller button via the above manner.

When DOSXBox is started, the last thing it will do is try to execute a file called
"MYSTUFF".  You can use this as your own personal "autoexec.bat".  "MYSTUFF" can be
a BAT, EXE, or COM file.  

Sometimes when you run a program it will put the emulator into an undefined state and other
programs may fail to load correctly.  For example, on the "Goblins 3" cd, if you were to
run "INSTALL.COM" first, it will fail.  Then if you try to execute GOB3.EXE, it will also fail.
However, if you restart DOSXBox and try loading GOB3.EXE first, it will succeed.  

The syntax of the mount command to mount the XBox DVD-ROM player as a CDROM drive is:

MOUNT D -t cdrom d:\ -usecd 0

The above will mount the XBOx DVD-ROM drive as a virtual CD-ROM drive (in ISO9660 mode)
onto the DOSXBox D: drive.  

Real-world example of configuration

For this example, I will be using the CD game called "Goblins 3".  

Insert Goblins 3 cd into XBox, load up DOSXBox.

The first thing I do is :

config -writeconf e:\games\dosxbox\goblins3.cfg

This writes the current configuration settings to the XBox e:\games\dosxbox\goblins3.cfg
file.  Now I execute:

config -readconf e:\games\dosxbox\goblins3.cfg

This is an important step.  Even though no settings have changed, the above command
will set the name of the default configuration file so that when you press CTRL-ALT-W
it will write the currently defined settings to the file you specified via the 
"config -readconf" command.

Now, at the D: drive, I type in "GOB3" to start the installation.  I follow the steps
and after it is installed, I start it up.

Now that it is playing, I hear the sound stuttering and things seem choppy.  I press
CTRL-F12 a few times to bump up the CPU cycles and I press CTRL-F7 once to increase the
frameskip by one.  Now everything plays/sounds wonderfully.  The screen is a little off,
though, so I first press CTRL-ALT-BACKSPACE to unlock the movement keys.  Then
I adjust the screen using CTRL+Arrows and ALT+Arrows.  

I also notice that the mouse is the primary input, but it's currently being controlled 
by the right analog stick.  I want my mouse to be controlled by the left analog stick, 
so I press CTRL-ALT-5 to flip the sticks.

The mouse movement is also out of whack on the Y axis.  When I move up, the mouse goes
down and vice-versa.  Therefore, I press CTRL-ALT-4 to correct that problem.  Now
everything is great except I have no way to press mouse buttons on the XBox controller.
This will require some hand-editing of the configuration file.  

Before exiting the program, I press CTRL-ALT-W to write the configuration to the
last-defined configuration file.  Since we did the "config -readconf e:\games\dosxbox\goblins3.cfg"
above, the configuration data will be written to e:\games\dosxbox\goblins3.cfg.

Now we can exit the program and edit the e:\games\dosxbox\goblins3.cfg file.

Download/edit the e:\games\dosxbox\goblins3.cfg file and open it up in notepad (or use
an XBox text-editing utility.)  I want the A and B buttons on XBOx controller #1 to control
the left and right mouse buttons.  So I make the following 2 line changes in the configuration


267 is the code for SDLK_KP_DIVIDE which was explained above to control the left mouse button.
268 is the code for SDLK_KP_MULTIPLY which was explained above to control the right mouse button.

Now I save the file and overwrite the existing one on my XBox.

I restart DOSXBox and at the command prompt I type:

config -readconf e:\games\dosxbox\goblins3.cfg 

to load in the newly changed configuration file with the key mappings.

I load up Goblins 3 again and voila - everything is exactly the way I want it.  

Stella, Gnuboy, SMSPlus, FCEUltra, HUGO, NeoPop, DGen, Bochs, HUGO-CD, FMSXBox,
Bliss, WinSTon, Gens, Z26X, StepmaniaX, PCSXBox, XBoyAdvance, DOSXBox, AtariXLBox...
what's next?



DOSXBox 286/386 PC Emulator port for XBox v1

Features :

 - Emulates 286/386 

 - Excellent compatibility - ported from DOSBOX

Super thanks to Lantus for his SDL-XBox libraries!

How To Use

(You really need a USB Keyboard to do anything interesting with this port.)

First, create a subdirectory called "GAMES" off of the directory where the DOSXBox XBE is located.
Put your old DOS games in this directory.

When DOSXBox starts, you'll be presented with a screen that looks a lot like an MSDOS
bootup screen.  Your XBox E: drive is set to the DOSXBox E: drive.  The XBox D:\GAMES 
directory is mapped to DOSXBox C: drive.  The XBox DVD-ROM drive is mapped to the DOSXBox
D: drive.  Currently, DOSXBox will only read XBox compatible DVD-Rs/CDRWs. (e.g. those
made with utilities like XISO.)

If you do a "dir" you should be presented with the list of items that you uploaded to D:\GAMES
on your XBox.  Simply type in the name of the game you wish to play and it should play it.

You will almost definitely have to do some fine-tuning to get games to play at the correct
speed and without jittery music.  Use the following keys to tune your game until it plays
the way you want:

CTRL-F7	        Decrease frameskip.
CTRL-F8	        Increase frameskip.
CTRL-F11        Slowdown emulation.
CTRL-F12        Speedup emulation.
ALT-F11         Slowdown emulation (smaller factor than CTRL-F11).
ALT-F12         Speedup emulation (smaller factor than CTRL-F12).

More useful keys:

CTRL-F9         Exit DOSXbox.
CTRL-ARROWS     Reposition screen
ALT-ARROWS      Resize screen

Please also consult the included, official DOSBOX README for more information on usage.
Note that some of what is included in that README is not applicable to the XBox version.

Stella, Gnuboy, SMSPlus, FCEUltra, HUGO, NeoPop, DGen, Bochs, HUGO-CD, FMSXBox,
Bliss, WinSTon, Gens, Z26X, StepmaniaX, PCSXBox, XBoyAdvance, DOSXBox....what's next?