FuseX Manual

--------------------------------------------------------------------------------
Using the Emulator

When the emulator first starts up you will see the Spectrum boot up. From the emulated spectrum you can access the menu by either pressing Start button or the left analog stick button on the pad.* This is the main menu and all emulator functions can be accessed here at any time.

To bring up the on screen keyboard press the left trigger. When the keyboard is on the screen it can be positioned with the right analog stick. Use the dpad to move around the keyboard and press the A button to simulate a spectrum keypress. Press the right trigger again or the B button to get rid of the on screen keyboard.

*[Why 2 buttons for the main menu? Well, I personally like to use the Start button for the main menu as I find pressing the analog stick buttons fiddly but most emulators use the analog stick button so I put it in so it wouldn't confuse people who were used to that convention. Since the buttons are configurable you can always overwrite these settings anyway.]
--------------------------------------------------------------------------------
Game Settings

FuseX automatically saves settings for each game you play. It saves which type of joystick was used to play the game and the joypad mappings you setup for that game (ie which keys are mapped to which buttons). So, for example if you load Chuckie Egg and map the Start button to the Spectrum's "S" key and set "Joystick" to "None" then it will save this information so next time Chuckie Egg is loaded it will load these settings automatically from the settings file.

FuseX saves these game settings files by default in the "Settings" directory of the FuseX directory. This directory can be changed if you wish by editing the "gameSettingsDirectory" section of fuse.ini. A config file (.cfg) will be created for each game. The naming convention for these files is [gamename].cfg, where [gamename] is the name of the game you were playing (minus the extension). So, if you were playing "Manic Miner.tap" the config file will be named "Manic Miner.cfg". 

Game settings are saved automatically when you close the main menu. 

Please note, there is a limitation to this system whereby "Manic Miner.tzx", "Manic Miner.tap" and "Manic Miner.z80" will all share the same config file: "Manic Miner.cfg". Also, "Manic Miner.tap" in one subdirectory will share the config file with another similarly named "Manic Miner.tap" in another subdirectory. I see this as a limitation but also as a valid feature, as it means you do not have to remap controls many times if you have different snapshots of the same game. If anybody finds any problems with this approach let me know.

If a game is loaded with no settings present FuseX will revert back to the emulators default settings. To set the default settings you will need to change the joypad mappings and joystick type when no game is loaded, ie when FuseX has just loaded or after the spectrum has been reset, then FuseX will save these settings in fuse.ini as defaults.

--------------------------------------------------------------------------------
Changing directories in fuse.ini

If you are not happy with the default directories FuseX uses you can edit them by modifying fuse.ini. For example, if you have your snaps in "F:\roms\speccy" then modify the "snapsDirectory" setting like this:

	<snapsDirectory>F:\roms\speccy</snapsDirectory>

If you want to change the directory fuse uses to save game settings or savestates then you can do so. FuseX will create the directory if it does not exist but there is a limitation with this: it will only create one directory for you - not the whole directory tree. So, if you change your "savestatesDirectory" to "F:\FuseXSavestates" and this directory does not exist then FuseX will create it (at the same time it tries to write a savestate). However, if you specify "F:\FuseX\Savestates" and neither of these directories exist then this will not work and FuseX will not be able to write any savestates to this directory. If however you just want to move an existing directory of savestates or game settings then none of this applies and you should be able to just point FuseX at the new location.

--------------------------------------------------------------------------------
Joypad Mappings

FuseX allows you to completely configure the joypad to your liking via the emulator's interface. You can map spectrum keys to joypad buttons and also configure which emulator functions are mapped to which buttons. To do this you need to select the "Joypad Mappings" option on the main menu.
 
Once in the "Joypad Mappings" menu you will see an entry for each button on the pad in the left column and what is currently mapped to each button in the right column. To change the mapping for a button select the button you wish to map and press A. This will bring up a seperate screen with a menu on the left hand side and the onscreen keyboard on the right. The menu on the left shows the emulator actions which can be mapped to the button and the virtual keyboard is for mapping spectrum keys to the button. You can use dpad left and right to move between the menu and the virtual keyboard. To map your new choice to the button select the required mapping and press A. If you change your mind for any reason then you can press B to cancel.

Its worth bearing in mind if you map any emulator actions to buttons these will be stay mapped globally across all games.

--------------------------------------------------------------------------------
Running FuseX from DVD

FuseX has been tested to run fine from DVD, however you will need to take a few steps and bear some things in mind to get the best experience. The optimal way to run FuseX from DVD is to configure it so it will save savestates and game settings to the HD. To do this you need to edit fuse.ini before you burn it to disc. Here are sample settings for saving savestates and game settings to the HD:

	<gameSettingsDirectory>E:\FuseXSettings\</gameSettingsDirectory>	<savestatesDirectory>E:\FuseXSavestates\</savestatesDirectory>

This will save game settings in "E:\FuseXSettings" and savestates in "E:\FuseXSavestates\". If these directories don't exist on the E: partition then FuseX will create them for you. Please note, there is a limitation to this. FuseX can create directories for you but it cannot create multiple levels of directories. So, if you specify "E:\FuseX\Settings" for the game settings directory and neither of these directories exist then FuseX will fail to create both of these directories.

Some limitations with running from DVD:

	- General fuse settings will not be saved (ie options, default keymap etc)
	- Info on each savestate slot will not be saved.

--------------------------------------------------------------------------------
Savestate slot info

FuseX stores the name of the snap in each savestate slot. Its saves this information in fuse.ini in the "saveSlots" section. FuseX calculates a checksum (32 bit adler) each time the savestate is saved. When FuseX is loaded it checks all savestate files match these checksums. If the checksum does not match you will see "Unknown Savestate in slot". You will see this if you have modified any of the savestate files on the xbox or replaced them with your own. You will also see this if you deleted your fuse.ini file.

--------------------------------------------------------------------------------
Main Menu

"Open" - Brings up the FuseX file selector and lets you browse your snapshot files. By default this will start browsing in the directory "snaps" subdirectory of your FuseX directory. To change where it starts browsing you can modify the "snapsDirectory" setting in fuse.ini. Subdirectories will be highlighted in yellow. Move to the parent directory by pressing Y on the pad. All file types will be displayed.

"Joystick" - Select the joystick type of the current emulated machine. Choose between "None", "Kempston", "Cursor" and "Sinclair" by pressing left and right on the dpad. Selecting any joystick other than "None" will mean the dpad and the left analog stick will emulate that joystick type.

"Joypad Mappings" - Choose how the joypad is setup. See the "Joypad Mappings" section above.

"Machine" - Choose which machine is currently emulated. Changing the machine type will reset the current machine.

"Tape" - Brings up the Tape Menu.

"Load Savestate" - Loads a savestate from one of the save "slots". A savestate is a snapshot. Pressing A will load the savestate and pressing left and right on the dpad will change which slot is used.

"Save Savestate" - Saves the current state of the emulated machine to a one of the save slots. The file will be saved to the savestates directory (as specified in fuse.ini) and one file will be saved for each save slot. Pressing A will save the savestate and pressing left and right on the dpad will change which slot is used.

"Reset Machine" - Resets the current machine.

"Options" - Brings up the Options Menu.

"Credits" - See who made FuseX happen.

"Quit To Launcher" - Quits back to your chosen dashboard.

--------------------------------------------------------------------------------
Tape Menu

"Insert Tape" - Lets you insert a tape file. This activates the file browser in tape mode so only .tap, .tzx and .zip files will be displayed. Browse to a tape file and press A to "insert" it. If  "Auto Load Tapes" is turned on in the options menu the spectrum will be reset and the tape will automatically be loaded. If "Auto Load Tapes" is set to off then the virtual tape will be inserted and the spectrum will not be reset and you must initiate loading by either typing "LOAD """ or entering the tape loader.

"Play/Stop" - Toggles the inserted tape to be playing or stopped.

"Rewind" - Rewinds the inserted tape to the first block.

"Eject Tape" - Ejects the currently inserted tape.

"Write Tape to 'tape.tzx'" - Writes the tape file in memory to "savestates\tape.tzx".

--------------------------------------------------------------------------------
Options Menu

"Graphics Filter" - Pressing left and right will cycle through the available graphics filters.

"Auto Load Tapes" - This deals with what happens when a tape is inserted via the "Tape" menu or when a tape file is loaded via the "Open" menu. When this option is turned on the emulator will reset the machine and load the tape automatically. When this option is turned off you will have to load the tape by hand by doing "LOAD """ and then starting the tape playing from the "Tape" menu. 

"Try to Load Tapes Instantly" - This attempts to load the tape in the fastest time possible. However, this will not work on all tapes.

"Fast Fwd when Loading Tapes" - This will load tapes at 10x the original speed. Use this option for tapes which won't load instantly.

"Loading Sound" - Turn the spectrum loading sound on or off.

"Writable Roms" - Whether writing to the rom area of the spectrum is permitted.

"Emulation Fast Fwd speed" - The speed of the emulation when the "Fast Fwd Emulation" button is pressed. This value is actually a frame-skip value. Frame skip 1 = twice the speed etc.

"R Register Save & Restore" - If this is set to ON this fixes some games (bruce lee wont crash on the second screen). When this is ON however some games dont work, like Bounder crashing when you reach the top of the screen.

"Show Splash Screen on Startup" - You can choose if you want to see the splash screen when FuseX boots up.

"Autosave Settings" - Fuse.ini is automatically saved when the main menu is turned off (but only if some settings have been modified). If you dont want this to happen then set this to "OFF". 

"Save settings Now" - Press this to force Fuse.ini to be saved to disk. This is not generally necessary but if you have got "Autosave Settings" set to off then you may wish to do this.

--------------------------------------------------------------------------------
Known issues

- Some rzx files wont work - mainly multiload games.
- USB Keyboard support still not working properly.
- Cant activate emulator menus with USB keyboard.
- Some zip files don't work producing errors "libspectrum: not enough space in zip output buffer" or "libspectrum: corrupt zip data. invalid distance too far back". Try un-zipping then re-zipping and it might fix it.
- Virtual keyboard only has spectrum 48k key layout. Extra keys from +2 and 128 are missing for example.
- Some (probably lots) tapes files will not load instantly so you will need to use "Fast Fwd when loading tapes".
- The shuffle on Rzx demo mode is rubbish.

--------------------------------------------------------------------------------
FAQ

Q Why does the FuseX icon not appear correctly in Xbox Media Centre?
A Try deleting the files in "UserData\Thumbnails\Programs\" within your XBMC directory. This is a cached store of the icons XBMC displays when you view the "games/programs/emulators" on the xbox. You should be fine deleting them because XBMC recreates them if they are not there.

Q Why does the sound skip and the emulation run too fast?
A This happens on NTSC Xboxes. Sorry, there is no fix for this at the moment. You need to run FuseX on a PAL50 compatible box for correct speed and no sound skipping.

Q Does FuseX support zip files with multiple files inside? 
A Sort of, but not fully. It will attempt to load the first recognised file in the archive.

Q Do I have to put my speccy snaps within the FuseX directory? 
A On version 0.5 you did but now you can put them where you like on the E: or F: drive. You need to change the "snapsDirectory" option in fuse.ini to be the path where you put your snaps. See the "Changing directories in fuse.ini" section above.

Q How do I reset the emulator settings to the default settings?
A Just delete fuse.ini and restart the emulator. Bear in mind, this will erase your savestate slot names, and will result in any savestate slot being titled "Unknown Savestate". The savestates will still load but just will not have a nice user-friendly name.

Q Does FuseX support disk images?
A Not currently but support may be added in the future.

Q I found a bug!
A Please let the author know by emailing crabfists@hotmail.com or leave a bug report at http://sourceforge.net/projects/fusex/

Q Does FuseX support the G: partition?
A No, not yet.