 _   _ _                 _______                ___      _                                 ___  ___
| | | (_)               | | ___ \              / _ \    | |                                |  \/  |
| | | |_ ___ _   _  __ _| | |_/ / ___  _   _  / /_\ \ __| |_   ____ _ _ __   ___ ___ ______| .  . |
| | | | / __| | | |/ _` | | ___ \/ _ \| | | | |  _  |/ _` \ \ / / _` | '_ \ / __/ _ \______| |\/| |
\ \_/ / \__ \ |_| | (_| | | |_/ / (_) | |_| | | | | | (_| |\ V / (_| | | | | (_|  __/      | |  | |
 \___/|_|___/\__,_|\__,_|_\____/ \___/ \__, | \_| |_/\__,_| \_/ \__,_|_| |_|\___\___|      \_|  |_/
                                        __/ |                                                      
                                       |___/   

VisualBoyAdvance-M
Nintendo Game Boy & Game Boy Advance Emulator
Project Homepage: vba-m.ngemu.com

This program is distributed under the GNU General Public License
http://www.gnu.org/licenses/gpl.html



Based on the official VisualBoyAdvance by Forgotten & the VBA development team
Original Project Homepage: vba.ngemu.com


===================
System Requirements
===================

OS:  Windows 2000 - Vista (x86 or x64)
CPU: min. 700 MHz for GBA emulation, CPU requirements increase if filters or other improvements are enabled
RAM: ~64MB free
GFX: ~32MB VRAM, latest drivers supporting DirectX9
SND: Anything with working Windows drivers


=================
Required Runtimes
=================

DirectX Runtime Web-Updater:
http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en

MSVC 2008SP1 Runtime
(x86) http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en

(x64) http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en

zLib
http://www.zlib.net/zlib123-dll.zip

=================
Optional Runtimes
=================

OpenAL Installer for Windows:
http://connect.creativelabs.com/openal/Downloads/Forms/DispForm.aspx?ID=1&Source=http%3A%2F%2Fconnect.creativelabs.com%2Fopenal%2FDownloads%2FForms%2FAllItems.aspx&RootFolder=%2Fopenal%2FDownloads

=================
Optional Filters
=================
http://vba-m.ngemu.com/vbam/vbafiles/filterplugins.rar

==============
To Do List
==============
Important:
- Many games show emulation warnings in the log window (unaligned read, bad read/write address)
 - Test: Metroid Fusion, Advance Wars 2

- Gfx.cpp/h optimization
 - Test: Final Fantasy 4 airship intro

- Improve automatic 64k/128k flash save detection
 - Pokémon Emerald hangs with white screen when no save state exists and wrong flash size is selected

- Remove 16 bit hack for filters
 - Not compatible to software motion blur (display corruption)

- Add selection for compressed archives with more than one ROM in them

- Fix LCD colouring

- Game Bugs:
 - Drymouth - screen flashes black after certain scanline
 - World Reborn - 2 graphics bugs


Less important:
- Add GBA cheat editing support (GB already has)
 - Look at Cheats.cpp (Core) and GBACheats.cpp (GUI)

- Add documentation for VBA-M (configuration guide)

- Improve AVI recording (produces asynchronous files)

- Enable audio stream compression for AVI files

- Add stereo upmixing support to OpenAL

- Verify BIOS files by checksum instead by file extension

- Merge HQ2x/LQ2x C code into code for HQ3x/4x

- Apply pixel filter to sprites and BG seperately for better image quality


Performance:
- Apply HQ3x/4x optimizations from C version to ASM version

- Apply pixel filter only to changed parts of the image

- Make even more use of multi-core CPUs

- Make use of 64 bit CPUs

- Have a look at the liboil optimization library
 - http://liboil.freedesktop.org/wiki/


==========
Known Bugs
==========
- Linking: Doesnt work quite right yet.

- Audio core: assertation error occurs when disabling sound in GB mode
 - I think its best we mute sound instead, since some games rely on audio for timing.
   Plus, blargg's GB_Snd_Emu is extremely optimized stuff. (Mudlord)
 - blargg's core implementation broke Dwedit's GBC emu.

- Wrong bit depth image is displayed for 2 frames when switching from/to HQ3x/4x ASM
 - This is caused by the 16bit hack which does not re-process the emulated image.
   It results in the display devices treating the image at pix with the wrong bit depth.


=======
Credits
=======

Mudlord
Nach
Squall Leonhart
Spacy
DJRobX
Jonas Quinn


==============
Special Thanks
==============

Forgotten & the VBA development team:
- For creating VisualBoyAdvance
- Couldn't you have written cleaner code???

chrono:
- Fixed a bug in the HQ3x/4x filters
- Made HQ3x/4x and Bilinear filters (ASM versions) thread-safe
- Many other fixes....

bgKu:
- GTK GUI port
- Various assistance with Linux issues

xKiv
- Assistance with Linux SDL port

blargg:
- Assistance with the implementation of his highly accurate GB audio core
- Implemented his unreleased File_Extractor library
- Cleanup of the audio core interface
