Final Burn Legends 1.0

This is a port of Final Burn Alpha 2.99.07 to the Xbox. It also includes
parts of FBA-XXX Pro 1.29. The reason I developed this port was so that
I could play Thunder Blade, Galaxy Force 2, Turbo Outrun, and After
Burner 2 on the Xbox. However, it developed into much more
than that. Source code is included.

It features:

-Support for over 2700 games. Some games are not playable anywhere else
on the Xbox. It also has an excellent Sega Genesis emulator. Many
Genesis games play perfectly.

-Fullspeed emulation (even with software filters in HD) for CPS1, CPS2,
NeoGeo, Cave, Konami, and many other games.

-Hiscore support for most games.

-SRAM support for Sega Genesis games.

-Built in cheat database. Nearly all games have cheats (not just CPS1
and CPS2). This includes support for multi byte cheats. EEPROM cheats
do not work.

-Built in Help system with information about the emulator, FAQ, and the
controls.

-Per game ini files. Setting options in the GUI are global settings.
Once a setting is changed in the emulation menu, then those settings are
saved for that game only.

-Detailed arcade information. This is the MAME history database. This
can be selected from the in game emulation menu. This includes
information about the game, trivia, tips, etc...

-Save states. There are ten savestate slots for each game. There is a
preview generated for each savestate. Some games have issues with
savestates, but most games work fine.

-NVRAM support. All changes made through the Arcade settings menu are
saved.

-In game menu where the user can configure the controls, video, or other
options. This is accessed by clicking the right analog stick.

-Support for all the Xbox partitions and DVD drive. The Drive letters
are (C, E, F, G, X, Y, Z, and R for the DVD-ROM). DVD discs must be
created from XISOs. Otherwise the ROMs will not be found.

-Command line support. The first parameter should be the path to the
emulator (E:\games\Final Burn Legends\default.xbe etc...). The second
parameter should be ONLY the name of the rom without the extension (i.e.
sf2). Not sf2.zip. Not E:\games\Final Burn Legends\roms\sf2.zip.

-Supports game guides. These are text files that describe a game (found
at www.gamefaqs.com). Try to keep the files at 1MB or less.

-Supports the ability to take a screenshot which will then be displayed
in the GUI.

-Arcade settings menu. This is where options like DIP switch settings
can be changed.

-Hundreds of game filters. A user can display only the games they want.
For example, a user could display only horizontal shooters, or 2D
fighting games, or only CPS1, or only games made by Konami, or only
games made in 1998, etc... The filter categories are:

Custom (CPS1, CPS2, CPS1 + CPS2, NeoGeo, CPS1 + CPS2 + NeoGeo, All
others, Cave, Psykio, Cave + Psykio, Megadrive)
Manufacturer
Year
Genre (dozens of sub filters (2D Fighters, 2.5 Fighters, etc...)

The Manufacturer, Year, and Genre filter databases are intelligently
built. It only shows possible filters based on the games found. For
example, there will be no 2D Fighters filter if there are no 2D
fighting games found.

-Favorites browser (games are added/deleted by selecting a game and
pressing the white button)

-Software Filters:
  SuperScale
  AdvancedMame
  HQ2X
  Simple2X
  Scanlines
  2xSaI
  Super2xSaI
  SuperEagle
  SuperScale75

-Hardware Filters:
  Bilinear
  Point
  Trilinear
  Gaussian Cubic
  Anisotropic

-Resolutions:
  480i
  480p
  720p
  1080i

Most games run at 60 FPS regardless of the resolution.

-Flicker Filter. This determines how blurry the screen is.

-Soften Filter. This determines how blurry the screen is.

-The screen can be adjusted during emulation. Each game saves this
information to an ini file.

-VSYNC can be turned on or off. Off might provide more accurate
emulation speed for games that do not run at 60 FPS. However, there are
not many that don't run at 60 FPS and it will cause screen tearing.

-10x11 pixel aspect ratio for users in 480i/p

-Screen rotation. The screen can be rotated up to 360 degrees. This
might be needed for some games.

-6 speaker surround sound (however no games output the audio in that
format)

-Sample and FM interpolation can be enabled or disabled.

-Sound frequencies 11025, 22050, 44100, and 48000.

-All 4 controllers supported.

-All the buttons can be configured.

-Supports turbo for all buttons. There is a turbo speed that can be
adjusted if needed. The higher the number the slower the turbo.

-Macro support. Any button combination can be used. These are read from
an ini file and the user can add macros to it. Macros work as follows:
A user would first map the buttons for the game they wanted to use a
macro for. For example, the user might map the 3 punches in Street
Fighter 2 to Xbox B, Y, and Black. The user then would enable the macro
for Xbox B, Y, and Black (B + Y + CK) and assign this macro to an Xbox
button (for example the Xbox right trigger button). Then, when the user
presses the Xbox right trigger, it will actually tell the emulator that
the user pressed the Xbox B, Y, and Black buttons. Since these buttons
are mapped to the three punches, then it will be the same as if they
pressed all three punches at the same time. This simplifies certain
combo moves where the user has to press multiple buttons at once.

-The cursor speed can be adjusted. This is the on screen target that is
drawn for shooters like Rail Chase.

-Almost all image/text items can be adjusted in the Options menu.

-Screenshot previews. It automatically detects when to display
horizontal or vertical screenshots.

-It supports up to 8 screenshots per game. These can be cycled by
pressing left/right on the right analog stick in the GUI.

-Analog scroll through the ROM list. Press left or right on the DPad to
cycle throguh letters of the alphabet.

-Video previews

-Dual previews. If the emulator only finds a screenshot, then it
displays the screenshot in single screenshot mode. If it finds a video
and no screenshot it displays the video in single video mode. If it
finds a video and a screenshot then it automatically uses the dual
preview mode where the screenshot and video are displayed side by side.

-The main menu supports six different backgrounds and a movie layer.

-The game select screen supports independently moving/resizing the game
panel, the selected game panel, the background, and all other items.
This way the user can create a user interface to suit their preference.

-Animated logo for the ROM browser and Main Menu screens.

-Splash screen

-GUI sound effects.

-GUI sound effects can be disabled.

-Options to scan the ROMs directory. This needs to be done if games are
added, deleted, or the ROM path is changed.

-All ROMs match the latest version of FBA 2.99.07. If the game doesn't
work there, it won't work on this port. A dat file is included that can
be used to verify or fix any game. The PC version dat file will not have 
all the games the included dat file has.

-Three skins are included (one for 480, 720p, and 1080i). If you are
going to use the emulator in HD, then pick one of these skins. It sets
everything up for you.

-Skin browser

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

Notes:

-If you reset a game and it doesn't reset, then try it again. Sometimes
reset doesn't take.

-The resolution of the screenshots matter. Larger screenshots will slow
down the GUI. An easy way to get only screenshots that Final Burn Legends
supports is to download a complete MAME screenshot set. Put the
screenshot.bat and FBA folder (from the tools folder) in that folder.
Run the screenshot.bat file. It will copy any screenshots that Final
Burn Legends supports to the FBA folder. Then copy those screenshots to
the Xbox.

-There are a few games that will only work in 480i/p. I am only aware of
four. If a game runs out of memory in HD, then try it in 480i/p. That
may fix it. 99% of all games work in all resolutions though.

-Any time you add, delete, or change a game make sure you re-scan your
ROMs. This is found at Options->Rebuild Game List

-There is no CPS3 emulation nor will there be. The Xbox is not fast
enough to emulate these games using Final Burn Alpha.

-Sometimes games will crash if invalid cheat codes are enabled. For
example: Don't enable "Always have 7 magic spells" in Golden Axe if the
Dwarf is the character. The Dwarf can never have more than 4. This would
crash the game.

-Sometimes games will have corrupt graphics or audio when loading
savestates. Nothing I can do about that.

-If a Genesis game says something like "This game was designed for NTSC
 or PAL systems only..." then reset the game. That will switch regions.
 
 -The default aspect ratio for vertical games is not 100% correct. This
 can be fixed by resizing the screen if needed. This only has to be done
 once since each game saves the settings to a separate ini file.
 
-If you are going to modify the code and make another release, please
only do so if you can meet the following criteria:

  1)  RELEASE THE SOURCE! Don't take mine or anyone else's work and not
      release the source. Everyone should get to benefit and future
      developers should be able to improve the code whenever current
      development stops.
  
  2)  Don't take Final Burn Legends, make a few changes, and then call
      it something else. Call it Final Burn Legends. Only change the
      version number.

  3)  Release it properly through Xbox-Scene. This way, you get the
      proper credit and it helps keep the Xbox scene alive.
      
  4)  I would appreciate it if no one made changes to it while I am
      still working on it. I will make it clear when I've stopped.

-New skins can be added by following these rules:

  1)  Make sure the new skin has all of the files found in the arcade
      skin (i.e. there should be an option.png, mainmenu.png,
      rombrowser.png, etc... file). None of the images should be bigger
      than the ones provided. Memory is at a premium and larger images
      will cause the skin to not display in HD or cause games (like
      NeoGeo) not to work.

  2)  Make sure the files are in a folder with the name of the skin
      (i.e. if the skin is called "FBA" then all the files should be in
      the "skins\FBA" folder)

  3)  Once a user has created the images for the skin and copied them to
      the new FBA folder, they can set up the skin through the GUI. The
      current GUI settings are saved to ini\FinalBurnLegends.ini. When
      the user is satisfied with how the GUI looks, they should copy the
      FinalBurnLegends.ini to the new FBA folder and rename it to
      FBA.ini.

  4)  The FBA.ini file should have the line FBA where the skin name is
      written. Look at arcade1080.ini as an example. About half way
      through the file is a line that says "arcade1080". That line would
      be replaced with "FBA" (without the quotes) in this example. The
      folder name, the ini file, and the name of the skin in the ini file
      should all have the same name. Otherwise, the skin won't work.
  
  5)  Search the ini for the word "Selected" (like GameSelected,
      CustomSelected, etc...). Make sure it says the value =0 for any
      that are found. If the ini file has GameSelected=1000 and another
      user uses your skin and doesn't actually have 1000 games, then
      that could cause a crash.

  5)  The skin can then be uploaded to the internet for all to enjoy. A
      user would just add the new skin to the skins folder and pick it
      from the Options menu.

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

Compatibility:

Most games work perfectly (and at 60 FPS). Most of the ones that don't
work require VM. Some games don't work correctly or at all but that is
rare.

If a game does not run at 60 FPS, the first thing to do is
disable software filters. Another option is to run in 480p. Games that
use VM may run better in lower resolutions since there is more RAM.

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

Thanks:

Kenshiro (Big thanks to him for the NeoGeo and other VM code). The
NeoGeo compatibility would be much lower without his code.

iq_132 for the PGM code and other help

Wac0 (Most of the GUI was done by him), Giles9999 (GUI), and anyone who
made a logo

Xport, FinalDave, and anyone who worked on any of the FBA PC versions or
Xbox ports.

Antirad for the great logo.

Anyone I forgot.

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

Please post any bugs or requests in this thread. Read the FAQ first.

What NOT to post (or PM me):

  -Can you send me the emulator?
  -Where can I download the emulator?
  -Where can I download ROMs?
  -My ROM doesn't work (i.e. I havenít verified it on the PC).


What to post:

  -Any game that gets an "Out of Memory" error. (other than CPS3, PGM,
  or D.D. Crew) Please post what resolution you were in.
  -Anything that crashes the Xbox
  -Anything in the GUI that doesn't work correctly.
  -Any requests (not please add <your favorite game here>) Requests are
  for GUI features or fixing games (other than CPS3 or PGM games) that
  are already supported in the PC version but not in the Xbox port.


Enjoy