WinUAEX Amiga Emulator port for XBox v8

What's New:

 - Support for 2 mice 

 - Can assign any mouse/joystick to either L/R analog stick

 - Settings are now saved when you launch real CDs

 - Will switch to PAL50/PAL60 mode for PAL users depending on if you have
   selected PAL50/PAL60 from the Game Configuration menu.  No effect for NTSC
   users.

 - Upload/Download configurations to/from xport.xbox-scene.com via 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 uploading a configuration please use a name that is as descriptive as possible.
For example, if the version you are using is AGA, please note it.  If the version
you are using is cracked by a specific group, please note that as well.


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?

Enjoy!


-----------------------------------------------------------------

WinUAEX Amiga Emulator port for XBox v7

What's New:

 - Added extra video mode to game configuration screen : PAL 60Hz.  
   Select this mode for smooth scrolling at 60HZ (gameplay and sound
   will be sped up, however.)

 - Keyboard keys no longer repeat

 - Fixed load state bug on multi-disk games where the wrong disk was being 
   inserted.


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?

Enjoy!


-----------------------------------------------------------------


WinUAEX Amiga Emulator port for XBox v6

What's New:

 - Fine tuned clock timers in PAL mode.  This should hopefully remove the slightly jumpy
   behavior that seems to be noticeable on scrollers.  Do not load a saved state to 
   test this.  Save states contain the old clock values.  You must allow a game to
   load normally to test this.  See notes below.

 - Games that are too CPU intensive and cause stuttery sound will no longer have
   stuttery video.  The gameplay will continue as normal and should no longer stop/start.


=====
Notes
=====

I am still unable to see the problem noted by some PAL50 users regarding video
not being smooth.  The changes I've made are based solely on theory, so don't
get your hopes up too much.

The problem as I see it is that there was no direct synchronization between the amount
of VBLANKs and the amount of sound data generated.  For smooth 50FPS, you need to
output an *exact* number of bytes of sound for each frame.  If you don't have this
exact amount of sound data, then you can either let the sound suffer (buffer 
overlaps, buffer overflows resulting in choppy music) or keep the data properly fed
to the sound buffers which will result in the video not being exactly 50FPS.  

If the video is not exactly 50FPS, then you will get a skipping phenomenon because 
the XBox timing hardware strictly enforces the 50/60 framerate.  It will either 
constantly be playing catchup or constantly being ordered to output more FPS than 
is allowed.  

This timing can be disabled, but if you do that, then there will be screen tearing.  
This is why things seemed smoother in earlier versions - I had the XBox timing turned 
off.  This allows for fractional FPS values (e.g 50.5FPS) but the expense is tearing. 
If you run WinUAE on your PC you can see in the status bar that the FPS fluctuates from 
the upper 40's to the lower 50's (e.g. 48.5 - 50.8 ).  Your PC monitor will happily 
accept this and carry on its business because it handles things much better than a 
regular TV.  The XBox was designed for TVs and thus is less forgiving.

So I fine-tuned the amiga clock timings and hard-coded some numbers to try and make
the XBox as happy as possible.  I also implemented a check to ensure that the amount
of sound generated each VBLANK is precisely what it should be.  Hopefully this will
clear up the problem.


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?

Enjoy!


-----------------------------------------------------------------


WinUAEX Amiga Emulator port for XBox v5

What's New:

 - Optimized some things here and there to increase framerate about 5 FPS. 

 - Fixed a bug that would sometimes cause crashes during screenshot creation.
   (Affected save-states also because save states are now saved with 
   a screenshot.)

 - Added predefinitions for Amiga 500, Amiga 1200, Amiga 1200-AGA and CD32.
   The new option is called "Select Machine Defaults" from the game
   configuration menu.

 - If you have "Always Display Save State Menu" and "Autoload most recent save state"
   enabled simultaneously, you will no longer be presented with the state selection
   menu at bootup.  

 - Fixed bug where screenshots for save states were not being displayed
   on save state menu when the screenshot directory and save game
   directory are on different volumes.  Screenshots that are created
   with save states should only appear on the save/load state menus.
   They should not appear in your regular screenshots directory
   and should not appear on the game-selection menu with the normal
   screenshots.  

 - Added option to disable screenshots with save states

 - Fixed some invalid chars and network issues

 - If you had the option to always bring up the Save/Load state menu
   on and you tried to save/load a state from the Game Utilities menu
   you would be presented with the save/load state menu twice.  This
   is fixed.  ( People using the Game Utilities menu to save/load states
   should probably turn off the "Always show save/load state menu"
   option from the General Configuration settings.)

 - New option to change controller port devices during gameplay from 
   in-game options menu.

 - Video device is recreated when you change the flicker filter level so you
   do not have to reboot to see the effect.




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?

Enjoy!


-----------------------------------------------------------------


WinUAEX Amiga Emulator port for XBox v4

What's New:

 - Fixed a bug where WinUAEX would crash if you tried to load an ISO file before 
   running a real CD game.

 - Option to select your own flicker filter level 0-5 (default is 5 - max enabled)

 - Changed max FastRAM to 8MB

 - Added option for up to 1MB SlowRAM

 - ADZ-as-ZIP and ADZ-as-GZIP should both work now (as well as normal .GZ)

 - Added 720x480 and 720x576 modes to Video Configuration menu

 - Fixed screenshot size to trim the edges of blank space

 - Repositioned LEDs so the screen doesn't have to be horribly askew to see them

 - Added option to hide filename extensions - find it on General Settings menu

 - Added option to always bring up save/load state menu on General Settings menu
   If this option is turned on, then whenever you press the in-game button-combo 
   to save/load a state it will display the load/save state menu from which you
   can select the state.  
   If the option is off, then the normal default behavior of immediately
   loading/saving the current state slot will occur.

 - Screenshot saved with each save state

 - Fixed bug where if you ejected a disk from In-Game options menu and then immediately
   selected "Reset Amiga", it would act as though the disk was not ejected.

 - Added option to configure text screen size/position for viewing text files

 - If you select the same text file to view you will be placed back at the position
   you left it.

 - Added Controller -> Joypad Mappings -> UI Mappings option for "Text Browser"
   Assign a key-combo to this function and when invoked, it will take you back
   to the last text file you were browsing at the position you left it.  
   This makes it much easier to jump back and forth from game <-> doc.
   Note - you must first manually select a file to browse from the "Game Utilities"
   menu off of the "In Game Options" menu.




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?

Enjoy!


-----------------------------------------------------------------



WinUAEX Amiga Emulator port for XBox v3

what's New:

 - CD32/CDTV support - Plays real CD32/CDTV cds and ISO files 
   (playing CD32 ISO files does not support WAV/MP3 CDDA tracks at this time)

 - Added "Extended ROM" to configuration screen

 - Samba, Relax, Netplay re-implemented

 - Increased max JIT cache size to 8MB

 - Increased max Chipmem size to 8MB - WHDLoad games work now

 - Added drive click sounds option "Floppy Volume" on game configuration screen

 - Fixed bug with display of FastRAM.  1MB was displayed as 0MB and vice-versa.

 - Screen tearing was not actually fixed in v2.  Now it is.

 - Added "Force PAL50" mode in Video Configuration section (off by default)

 - Added "Disable Flicker Filter" to Video Configuration section (on by default)

 - Create blank ADF/HDF files from In Game Options menu

 - ADZ support

 - Fixed all special/international character-conversion to be non-DEBUG FAT-X compatible
   (Workbench enthusiasts)

 - Screen size/position saved for each game

 - Added more fine-grain CPU speed options.  
   0 = Max, 1 = Real, 2 = 100% ... 33 = 0%

 - Added "Reset Amiga" function to In-Game Options menu

 - Fixed memory bug when reading ISO9660 files

 - Added default text-viewing dir.  Set it via the default directories section.

 - Text file settings (fixed width, text width) are maintained each time
   you go back and forth from the menu

 - When you go up a directory, the cursor is positioned over the directory you just
   exited.

 - Because of changes to the structure of configuration file, you'll have to 
   reconfigure all your games.  

 - Graphics filters were added back in, but only one or two of them could be
   used without slowing down the game (on even the simplest of games.)
   I removed them again so that the memory could be put to better use.



===============
Important Notes
===============

To get CD32 emulation working, you need two ROM files to be placed in the
D:\ROMS directory.  They are the CD32 version of the Kickstart 3.1 ROM and the
CD32 extended ROM image.  They need to be called :

D:\ROMS\KICKCD32.ROM
D:\ROMS\EXT_CD32.ROM

The default configuration that appears for CD32 games should work in most
cases.

To play a real CD, put the CD into the XBox DVDRom drive and select
"Launch Inserted Media" from the Main Menu.

To play an ISO file, select it as you would normally select an ADF game.

CD32/CDTV emulation is a little flaky.  On rare occasions, the bootup screen will not
appear.  Also, the CDDA tracks will sometimes fail to play.

Playing MP3/WAV files with ISO CD32 tracks is not currently supported.  




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?

Enjoy!


-----------------------------------------------------------------



WinUAEX Amiga Emulator port for XBox v2

what's New:

 - Fixed screen tearing

 - Should automatically switch to PAL50 mode for PAL users

 - New Options

   + Adjustable CPU/Chipset finegrain tuning from 100% CPU/0% Chip to 0% CPU/100% Chip
     Makes some games (e.g. Gloom) much more like the real thing

   + 1MB FastRAM

   + Sound quality - Exact/Slower, Good/Faster
     Some games like Batman : The Movie have to think reeeeal hard when the sound
     quality is exact and it results in very slow game play.  Set it to Good/Faster
     and things speed up to normal again.

 - Fixed mouse bug with Frontier : Elite 2 AGA version

 - Fixed bug with filenames inside zips containing '+' characters

 - Fixed bug with launching large files from ISO9660 discs

 - The image you select from the file-selection screen will now always boot regardless
   of how your disk configuration has changed during gameplay.

 - 5 hard drive slots instead of just one
   Device name, volume name, read/only, boot priority are configurable now also

You'll need to re-configure your HD games in order for them to work.

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?

Enjoy!


-----------------------------------------------------------------



WinUAEX Amiga Emulator port for XBox v1

http://xport.xbox-scene.com
http://www.winuae.net/

Thanks to J-Red for another great skin!


Features :

 - Emulates Amiga

 - Excellent compatibility - ported from WinUAE 0.8.27

 - ZIP support

 - Cheat system - Search/Create your own cheat codes (see notes)
 
 - Favorites list

 - Save states

 - Virtual Keyboard - go to Controller Configuration / UI Mappings to select
   the button combo that will bring up the Virtual Keyboard while in-game.

 - Real keyboard support

 - Real mouse support

 - Hard drive files (HDF) and hard drive directory support

 - Lots of WinUAE customization options

 - Fast forward/throttle 

 - Resizable game screen

 - Skin-able :
    - Backgrounds
    - Sounds
    - Background Music
    - Sprites
    - Text position (right/left/center, top/bottom/center)
    - Text color, select bar color
    - Font
    - Fading speed
    - Screenshot position
    - Can specify 2 sprites to surround the selected menu option
    - Option to have a transparent select-bar color (from select-color menu)
    - Can flip sprites horizontally/vertically
    - Can set motion_x and motion_y variables for sprites
    - Sprites can loop continuously or just once
    - If you want to change the way something looks in this new UI,
      chances are that you can change it via the Configuration menu.


 - Save Game management - delete save game files

 - Text file viewer

 - ISO9660 support

 - User definable save directory.  If you don't like the default of
   E:\SAVES\WINUAEX you can change it via the menu

 - Take in-game screenshots and display them on the game selection list

 - New UI feature - auto-screenshot capture mode.  When enabled, the emu
   will start taking screenshots at a user-defined interval.  Useful for
   ripping sprites/animation.

 - Hardware filtering options : Point, Bilinear, Trilinear, Anisotropic 

 - Record/Playback feature - record your gameplay in the emu and then
   play it back again.  Record up to 10 minutes of gameplay.

 - Every single in-game command is fully customizable on any of the
   four joypad controllers.

 - Map any emulator or UI command to a single button or a combination of
   two buttons.  (e.g. RTrigger+LTrigger = Save State)

 - Autofire capabilities for any emulator button on any controller

 - One-button combos (define a series of emulator commands to be played
   back when you press a user-definable XBox controller combination.)
   (E.g. Press RTrigger+LTrigger to execute the command string
   A,B,A,B,Up,Down,Left,Right)

 - Traverse any directory on any drive ( Continue selecting the parent
   directory entry on the file selection list to get the drive selection
   list.  Selectable drives are C, D, E, F, R, X, Y, Z, and SMB. 
   R is the CDROM drive.  SMB is the samba share you have defined in your
   WINUAEX.ini file.)  Press Y from any file-listing screen to go up one
   directory level.

 - All UI commands (save state, load state, screenshot, etc) can be
   invoked from the Options/Pause menu as well as in-game via your
   customized joypad mappings.

 - Can be invoked from a command-line to directly run a game from a front-end
   or dashboard and bypass the user-selection screens. (Only if the frontend
   or dashboard supports this feature.)

 - Can return to the launching program *if* the launching program supports this
   feature.  For example, if the custom-launch routines are incorporated into 
   a new frontend, that frontend could launch WINUAEX and when you exit 
   WINUAEX, that frontend can be automatically reloaded.  



Default ROM dir is D:\AMIGADISKS

===============
Important Notes
===============

--------------
Kickstart ROMs
--------------

You need to put the following ROM files into the D:\ROMS directory:

KICK12.ROM
KICK13.ROM
KICK20.ROM
KICK30.ROM
KICK31.ROM

These are the so-called "Kickstart" ROM images that are REQUIRED in order for
WinUAEX to be functional.  Search google for "kickstart roms" and I'm sure you'll
find them.

--------
Cutbacks
--------

WinUAE eats up a LOT of memory.  I had to remove the following:

Software graphics filters (2xSai, AdvanceMame2x, etc, etc)
MP3 playback
Network sharing (Samba, Relax, netplay)
Hi-definition modes (720p, 1080i)

If you put a different skin on, I don't recommend using any sprites or sounds
because if you add too much, it may prevent WinUAEX from being able to load
any games.  

I don't think these restrictions will be really disappointing to people, though.  


-------------------------
Using Disks + Save states
-------------------------


When you change disks while playing, the configuration of the game is updated as well.
For example, if I start a game with DISK1 and then during the game I change the disk
in drive 1 from DISK1 to DISK2, then the configuration of the game will now state
that the disk in drive 1 is DISK2.  When you start the game again from the main menu,
it will try to boot off of DISK2.  This is intentional.  Save states for multiple disk
games requires that the disks present in the drives when the state was saved are there
when the state is reloaded.  

If you are playing a game where you have to change the disks during gameplay, then 
I strongly suggest these tips:

 - Turn on auto-loading of save states

 - After you have changed a disk, wait until the game has finished loading whatever
   it needs and then save the state.  Always remember to save the state after 
   each disk swap.  If you do this, then when you exit the game and restart it in the
   future, the disks will be set correctly in the configuration screen, the state will
   automatically load, and you'll be all set.


-----------------
Weird Speedup Bug
-----------------


There is a strange bug that has popped up a couple of times during testing that I have
not been able to find.  If you notice that the game you are playing is going way too
fast, then simply exit out of it and restart (or save the state and immediately load the
state again.)  It should be fine after that.


-----------------------------
Save States + Hard Drive = No
-----------------------------


Saving states while using hard drives is not supported in WinUAE, therefore it is not
supported in WinUAEX.  You can still save/load the states, but there is no guarantee
that it will work with hard drive images.  I've had it work fine for me in some cases
and in other cases it has crashed.


------------------
Game Configuration
------------------


The default configuration will work with most non-AGA games, but some games do require 
tweaking.  For AGA games, I suggest using KICK31.  There are lots of tutorials,
docs, and forums about configuring games for use in WinUAE.  I suggest you read
them first if you are having a problem getting a game to run.  I have found that
just about every game will work if you fiddle with the settings enough.  There are 
also different versions of various games.  If one does not work, try to find another.
In the few cases that I couldn't get a game to work, I found that it also did not work 
in the Windows version of WinUAE.  

Here are some general configurations that have worked well for me:

#1 - This is good for standard A500 games, including Shadow of the Beast

68000
Kickstart 1.3
512k Chip Mem
defaults for everything else


#2 - This is good for some more advanced games (A1200)

68020
Kickstart 3.1
2MB Chip mem
defaults for everything else

#3 - This is good for AGA games

68020
Kickstart 3.1
2MB Chip mem
AGA Chipset
defaults for everything else



--------------------------
Amiga Controllers Defaults
--------------------------


It seems the normal configuration that many games expect is for a mouse to be 
plugged into port 1 and a joystick in port 2.  The default configuration for 
your controller is as follows:

The following buttons apply to the controller assigned to port 2 which is
defaulted to an Amiga Joystick:

XBox DPAD - Port 2 Up/Down/Left/Right
XBox A    - Port 2 Button 1 (Joystick Button 1 or Mouse Left Button)
XBox B    - Port 2 Button 2 (Joystick Button 2 or Mouse Right Button)
XBox X    - Port 2 Button 3 (Joystick Button 3 or Mouse Middle Button)

The following buttons apply to the controler assigne to port 1 which is
defaulted to an Amiga Mouse:

XBox Y     - Port 1 Button 1 (Joystick Button1 or Mouse Left Button)
XBox Black - Port 1 Button 2 (Joystick Button 2 or Mouse Right Button)
XBox White - Port 1 Button 3 (Joystick Button 3 or Mouse Middle Button)


The XBox Left Thumbstick will always control the mouse cursor regardless of 
the port to which it is assigned.  (The same thing applies to a real mouse
if you have one connected.)


Questions?  Select the HELP option from the Main Menu or go to my website, noted above,
for FAQs.  


=============
Configuration
=============

Everything can be changed from the configuration menu.  

To change things like default save directory, default game directory, etc, go to
Main Menu -> Configuration -> Change Default Directories


===============
Menu Navigation
===============

Select menu options with the DPAD or with R/LTrigger.  The speed of 
R/LTrigger movements can be controlled by :

Configuration -> Menu Scroll Speed

There are some places where you can enter or change values.  This 
can usually be done in a variety of ways include DPAD Left/Right, 
R/L Trigger, and L/R Thumb.  Try all of them if the values are changing
too slowly.

"A" selects the highlighted choice.  "B" cancels/returns.
"Y" from a file-select list will go up one directory.


================
Text File Viewer
================

DPAD Up     - Up one line
DPAD Down   - Down one line
DPad Left   - Up one page
DPAD Right  - Down one page
R Trigger   - Scroll down
L Trigger   - Scroll up
A           - Start search
X           - Continue last search
White       - Top of file
Black       - End of file
Y           - Simulate fixed-width font
Back        - Decrease width of simulated fixed-width font
Start       - Increase width of simulated fixed-width font
B           - Exit


=====
SKINS
=====


Instructions for making a new skin:

 - Create a new directory off of your SKINS directory (default skins directory
   is D:\EMUSKINS
 - Place your sound/font/graphic media files in this new directory 
 - Load WINUAEX
 - "Select Skin" from the main menu and select your new directory.
 - Select Configuration
 - select Configure Skin
 - Use the menus to select your new media files and change your settings
 - When you are satisfied with what you have, go back to the main menu.
 - Select "Configuration"
 - Select "Overwrite D:\*.ini and D:\emuskins\\<skin>\\settings.ini"
   This will write the skin settings in your skin directory (if your skin
   directory is on the hard drive.)
 - You're done!  You can package up the directory and share it with your friends.


If you wish to use sprites in your new skin, then read the following:

 - Create a subdirectory off of your new skin directory called SPRITES
   e.g. D:\EMUSKINS\NEWSKIN\SPRITES
 - In this new SPRITES directory create a 0-based numeric directory for
   each sprite you wish to make.  This means that if you have 4 sprites
   you wish to load, the directory names *must* be called 0, 1, 2, and 3.

   Do not call them 1, 2, 3, and 4.  
   Do not call them 0, 3, 5, 6.  
   Do not call them SPRITE1, SPRITE2, SPRITE3, SPRITE4.  

 - Inside each of these new directories, you must place the sprite frames.
   Each frame is represented by a BMP, PNG, or JPG file.  The order of the
   frames is given by the filenames.  These filenames must also be named
   with 0-based numbers.  For example, 0.png, 1.png, 2.png.  Look at the
   sprites directory of the included default skin to see how it works.

 - Do not skip numbers when naming sprite directories or sprite frame 
   filenames.  A list of directories called 0,1,2,5,7 is *INVALID*.
   Similarly, a list of files called 0.png, 1.png, 4.png, 5.png is also
   *INVALID*.

Also be aware of memory constraints.  Let's say you have a frame of a sprite
called 0.png.  This picture file is 90 pixels wide and 130 pixels high.
This will get rounded up to a 256x256 pixel 32bit picture.  This means
that it will consume 256x256x4 bytes (256KB) of memory.  If your sprite has
10 frames of animation, that's around 2.5MB of memory.  Keep this in mind
before you make ultra-smooth moving sprites with hundreds of frames of
animation.

You can check your available memory by going to Configuration -> Configure Skin
-> Show Available Memory

If you make/configure a skin and WINUAEX does not load the next time you
play it, then you need to delete the E:\SAVES\WINUAEX\WINUAEX.INI and
E:\SAVES\WINUAEX\SKIN_SETTINGS.INI files.  WINUAEX should work fine again,
but you'll have to reconfigure your skin.  The problem was probably
that one of your resources (like a WAV or background file) was specified
incorrectly or was never changed from the old skin.  Carefully look at the 
E:\SAVES\WINUAEX\SKIN_SETTINGS.INI file to make sure that all filenames exist 
in your skin directory.



====================
Controller Remapping
====================

Configuration -> Configure Controllers

There are 32 general/all-purpose emulator "buttons" or actions.  Each of these
buttons can be assigned a specific emulator action.  For example, Emu Button 1
can be A, or B, or DPad Down, etc.  These "emu buttons" can then be assigned 
XBox triggers.  For example, Emu Button 1 (which you have mapped to, for 
example, A) can be triggered by  XBox controller button B.  The default button 
mappings should provide enough information on how the system works and 
how it can be used.  

==========
Autofiring
==========

Configuration -> Configure Controllers -> Controller # -> Change Autofire

Each "Emu Button" can be set up for autofiring.  Simply set the autofire
variable to a non-zero value.  This value indicates how long the emulator
should wait before releasing and re-pressing the button.  A value of 1
might be too fast to register on some games.  I suggest setting it to a
number like 5 first and them fine-tuning it.


======
Combos
======

Setting up a combo can be kind of tricky because you need to know exactly
what the game expects to have happen on the joypads to execute the special
move.  For example, let's say that we want to map a standard move that is
described like this : 

D, DR, R, A

D = Down, DR = Down+Right, R = Right, A = A button

First, set the delay to a number like 2 or 3.  Then set up the moves.  In
this case, any (or none) of the following might work:

Down
Down+Right
Right
Right+A
Right

OR

Down
Down+Right
Right+A

OR

Down
Down+Right
Right
Right+A
Right+A
Right+A


You will probably need to fine-tune each combo move before it works, but
you'll soon get the hang of it.



==================================================
Cheating System - How To Make Your Own Cheat Codes
==================================================

Special Note for Z26 - In many Atari 2600 games, certain important values (like
the number of lives you have, etc) are stored as a nibble value.  A nibble is
half of a byte.  For example, in Asteroids your number of lives and the current
direction you are pointing are stored in the same byte.  (High nibble is the
number of lives and the low nibble is the direction.)  When searching for cheat codes,
I would advise using *only* the "equal to" or "not equal to" options.

Just about every single port I've released has this feature, and I 
occasionally hear people asking "how does it work?" This is easiest to 
explain by example:

 1) Start playing a game. 

 2) Go to Options Menu and select "Start Search for Cheat Code"

 3) Go back to game and lose a life

 4) Go to Options Menu and select "Continue Search For Cheat Code"

 5) Select "Search For Values Less Than Before" because when you
    first selected "Start Search For Cheat Codes" you had one more
    life than you do now.  You will see the number of matches go down.

 6) If the number of matches is greater than 10, then perform actions
    3, 4 and 5 continually until the number of matches is less than 10.
    If you run out of lives, then just start playing the game again.
    (Do not exit the emulator and select the game again - just start another
    game from within the emulator.)  Now you will have a full stock of lives,
    which is *more* than the last time you checked your values.  So when you
    continue searching, you'll want to select "Search For Values Greater Than
    Before."  Then go through steps 3-5 over and over until you have less than
    10 matches.

 7) Now that you have less than 10 matches, you can add the codes to your
    list.  If the search narrowed the list down to 1 possible match, it
    will automatically add it to your list.  Now you can "List Cheat Codes"
    and selectively turn on/off the cheat codes to try them out and see
    which on is the right one.

Alternately, you can use the "Search For An Exact Value" option if you
already know the number you wish to change.  Example:

Let's say you are playing Dragon Warrior and your character currently has
25 Hit Points.  Follow these instructions:

 1) Go to Options Menu and select "Start Search for Cheat Code"

 2) Select "Continue Search For Cheat Code"

 3) Select "Search For an Exact Value" and enter 25 as the number.
    The number of matches should decrease very quickly.  

 4) Go back to the game and do something to change your Hit Points amount.
    For example, let's say you drink a potion and your Hit Points are now 35.

 5) Go to options menu and select "Continue Search For Cheat Code"

 6) Select "Search For an Exact Value" and enter 35 as the number.
    Chances are very good that the number of matches will be down to 
    one or two.  Just try out the codes to see which one gives you infinite 
    Hit Points!

Advanced Cheat Code Usage:

Cheat codes have the following format:

TT AAAAAA VVVV

TT     = Type
AAAAAA = Address
VVVV   = Value

You can hand-edit the cheat codes you've created.  Go to the Cheat Code list,
select a code, and select Edit.  Let's say you've already created a cheat code
that keeps your hit points at 25.  The last four hex digits of your code will be
0019 (which is hexidecimal for 25.)  You can change the last two digits to, for 
example, FF which will give you 255 hit points instead of 25.  More sophisticated
codes can be made by altering the Type:

Type Table

80 - Means set the 16-bit value (0-65535) pointed to by the cheat code address 
     to the cheat code value.

30 - Means set the 8-bit value (0-255) pointed to by the cheat code address 
     to the cheat code value.

10 - Means increase the 16-bit value pointed to by the cheat code address
     by the cheat code value.

11 - Means decrease the 16-bit value pointed to by the cheat code address
     by the cheat code value.

20 - Means increase the 8-bit value pointed to by the cheat code address
     by the cheat code value.

21 - Means decrease the 8-bit value pointed to by the cheat code address
     by the cheat code value.

D0 - Means only execute the next code in the list if the 16-bit value pointed
     to by the cheat code address is equal to the cheat code value

D1 - Means only execute the next code in the list if the 16-bit value pointed
     to by the cheat code address is not equal to the cheat code value

D2 - Means only execute the next code in the list if the 16-bit value pointed
     to by the cheat code address is less than the cheat code value

D3 - Means only execute the next code in the list if the 16-bit value pointed
     to by the cheat code address is greater than the cheat code value

E0 - Means only execute the next code in the list if the 8-bit value pointed
     to by the cheat code address is equal to the cheat code value

E1 - Means only execute the next code in the list if the 8-bit value pointed
     to by the cheat code address is not equal to the cheat code value

E2 - Means only execute the next code in the list if the 8-bit value pointed
     to by the cheat code address is less than the cheat code value

E3 - Means only execute the next code in the list if the 8-bit value pointed
     to by the cheat code address is greater than the cheat code value

If you are familiar with cheat codes, you'll notice that these are standard
Gameshark types.  With enough experience you could make some seriously
interesting codes with this system.  

For example, I played around with Super Mario Bros (NES) and found out that
address 0007EE stores the number of coins and address 0007FA is the
one's digit in the timer.  Here are two codes:

E0 0007FA 03
20 0007EE 01

Those codes mean that while the ones timer digit is equal to three, increase the 
number of coins by one.  You won't see the coins updated on the overhead
display in the game, but if you start a game, wait until the timer one's
digit is a three and then collect a coin, you'll see that your coin value
is actually much higher than one, now.  Fun useless stuff.  :P



==================================================
Command-Line/Auto-Launching and Return to Launcher
==================================================

This section is for the developers of frontends, dashboards, etc.

WINUAEX can be started with parameters to automatically launch a game
at startup.  Example code can be found in the custom_launch_params.cpp file.

There is also example code in that same file that will show you how to 
make WINUAEX load your frontend/dashboard when it exits.




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?

Enjoy!
