               ************************************************
               ************************************************
               ***                                          ***
               ***    hot-PocketSnes for Gemei A330 v1.0    ***
               ***            by David Cervilla             ***
               ***                                          ***
               *** based on the sources for the Dingoo port ***
               ***   http://hot-pocketsnes.googlecode.com   ***
               ***                                          ***
               ************************************************
               ************************************************


Changelog
---------

v1.0		2013-03-30 Initial release - Changes related to the PocketSnes port by cex:

- Updated to the latest hot-PocketSnes sources available.
- Fixed a initialization bug preventing correct sound emulation.
- Packed all the graphic files within the executable. Now you only need to install
  one file.
- Fixed the ROM browser code to work on the GA330.
- Changed CPU initialization code to use the higher speed mode used by native emulators.
- Fixed a sound buffer that was causing sound cuts for PAL games at 48000 Hz. 
- Added 32000 Hz Sound Rate option.
- Changed the sound levels from 0-31 to percentage (0-100) with 5% increments.
- Added Screen Brightness (Backlight) controls.
- Some minor optimizations to gain 1 or 2 FPS at most.


Known bugs
----------

- There's a bug causing sound latency issues when using sound frequencies lower
  than 48000 hz. It's more noticeable at the lowest frequencies (11025 or 22050).
- The ones you surely will find. Please report them at http://boards.dingoonity.org


To Do
-----

- Change the directories where save states and game options are saved, to the
  same directories where the rom is stored. I think it should be better this way.
- Add a menu option to choose between different CPU speed modes.
- Use hardware scaling to reduce the performance drop at full screen.
- Use the available ARM assembler code optimizations to increase performance
  (currently not being used). 

Installation
------------

Extract the file "hot-pocketsnes.cc" from the zip, an copy it to the GA330
folder where you want to install it.


Usage
-----

Go to the 'Applications' tab on the main menu, and navigate to the folder where
you installed the  file. Select it, and hot-PocketSnes will start.


Menu
----

The app starts directly to the menu. To return to it anytime inside a game,
press SELECT + START. Press A to select any item, or B to go back.

- Return to game: Exits the menu and returns to emulation (only if a game was
  previously loaded).

- Select Rom: Enters the rom browser interface. Roms can be in .smc or .zip
  format (just one rom inside the zip). Press UP or DOWN to change your selection.
  You can page through the items using LEFT or RIGHT. Select any rom with A to run
  it. Options inside this menu are:
                  - Save default directory: Saves the current dirrectory as the
                    default rom directory.
                  - Main menu: returns to the main menu.
                  - <..>: Will take you up a directory.

- Save States: Save States are basically dumps of the emulation state which can
  be reloaded at any point. This effectively allows you to save you game at any
  point.

  The Save State management screen allows you to load,save or delete save states.
  Save States are saved to A:\\GAME on your GA330.

- Reset Game: Resets the current game if one is loaded.

- Save SRAM: Some Snes games allowed you to save your game to a special memory
  on the Snes cartridge. This memory was called SRAM. hot-PocketSNES emulates
  this type of memory which means you can play your Snes games exactly as you
  would on Snes.

  The save SRAM option allows you to save the contents of SRAM to disk so it can
  be loaded again later when you load the Snes Game. It is saved to the same
  directory where the rom is stored.

- Auto Save SRAM (ON|OFF): Press RIGHT or LEFT to change the option.
  ON - Means that hot-PocketSnes will save the contents of SRAM everytime you enter
  the menu.
  OFF - Means that hot-PocketSnes will never automatically save SRAM to disk. This
  means you have to use the Save SRAM menu option or your SRAM saves will be
  lost.

- Sound: Turns sound on or off. Setting to "OFF" means no sound but sound is
  emulated. "NO EMULATION" means sound is not emulated (which can cause some
  games to hang).

- Volume: Allows you to set the sound volume between 0% and 100%.

- Sound Rate: Allows you to set the sound rate of the emulated sound stream.
  The lower the value the lower the quality. The higher the value the better the
  quality but it has more impact on the performance of the emulator. Note that
  currently there's a bug causing some sound latency issues, more noticeable
  when using low rate values.

- Frameskip: Frameskip allows you to control how many times the emulated Snes
  screen is drawn per second.  
  AUTO - means that the system will monitor the emulator performance and skip
  frames when it believes the emulator is running too slowly
  0 = 60 fps (The system will never skip a frame, this could cause some games
             to run very slowly)
  1 = 30 fps
  2 = 20 fps
  and so on..

- Full Screen Mode: Allows you set the screen to fill the entire GA330 screen or
  render the screen at its current resolution which will mean having black
  borders around the emulated Snes screen.

- Quick keys: If enabled you can use inside emulation the quick key combinations
  described below.

- Transparency: This is a hack which allows you to increase the performance of
  the emulator. Not all games use Transparency effects, so for those games you
  can disable transparency and the game will run faster.  
  NOTE: Enabling this option on games that do use transparency can cause the
  emulated Snes display to be drawn incorrectly.

- Show FPS: FPS = Frames Per Second. This is the number of times the emulated
  Snes screen has been updated over the last second. These stats give you can
  idea of how the emulator is performing

  60 FPS - nice
  30 FPS - ok
  20 FPS - bareable
  10 FPS - yuck! try lowering the sound rate or disabling Transparency

- Screen Brightness: This allows you to adjust the screen brightness (backlight).
  Pressing LEFT or RIGHT will decrease or increase the value between 1 and 10.
  This only affects hot-PocketSnes. When you exit the app, your system backlight
  values will be restored.
 
- Load Global Settings: This will reload the global default menu settings from
  disk. Note: All settings are held in A:\\GAME

- Save Global Settings: This will save the current menu settings to disk. When
  hot-PocketSnes next runs, these settings will be automatically loaded.

- Load Settings For Current Game: This will reload the settings for the Snes game
  currently loaded.

- Save Settings For Current Game: This will save the current menu settings to
  disk. hot-PocketSnes will then reload these settings the next time this particular
  Snes game is loaded.

- Delete Settings For Current Game: Deletes any saved settings for the current
  Snes game.

- Credits: Displays credit information for hot-PocketSnes

- Exit Application: Exits hot-PocketSnes and returns you to the GA330 menu.


In Game - QuickSave/QuickLoad
-----------------------------

NOTE only if "Quick keys" menu item is enabled.

While running a Snes game you can save your current position to memory by pressing
the following button combination

    L + R + LEFT

To reload this position press

    L + R + RIGHT

Messages will be displayed at the top of the screen to confirm when your state has
been saved or loaded. Please remember that these are only temporary saves. You have
to use the Save States menu to permanently save them.

In Game Volume Control
----------------------

NOTE only if "Quick keys" menu item is enabled.

You can change the sound volume in game by pressing the following button combinations

The increase the volume press

    L + R + UP

To decrease the volume press

    L + R + DOWN

A message will be display at the top of the screen to inform you of the new
volume setting.

Credits
-------
PocketSNES created by Scott Ramsby
Ported to the Dingoo by Reesy

Special thanks to Flatmush and Hartex who created the Dingoo SDK without
which the Dingoo port would not have been possible!

Thanks to clach04 for adding dirent.h functionality to the Dingoo SDK which
made adding the rom browsing very simple.

And I must add, very special thanks to cex, who did the initial porting to the
Gemei A330, and kindly released his source code. Whithout him, I didn't know
where to start.



 
