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?