Final Burn Legends 1.1

What's new:

-Added ability to select any Neo Geo BIOS. There are 23 different BIOS
types supported. UniBIOS 2.3 is the default and recommended. This is
saved per game, so if a user finds a game that the UniBIOS does not work
well for they can change the BIOS for that game and it is saved
separately. When a game starts the first thing that is displayed is the
UniBIOS startup screen. Press A, B, and C (by default this is Xbox X, B, 
and A) to setup the BIOS. This is only needed once per game. The user
can set the game to AES or MVS mode, change the region, and disable the
hardware test (green screen). This will make games start a lot faster.
During emulation, press P1 Start and P1 Coin to bring up the in-game
BIOS settings. There is a great cheat database built in with codes for
all games.

-Added suport for Ironclad / Chotetsu Brikinger. The region must be set
to USA or Japan or the game won't boot. When the UniBios 2.3 screen
appears, press Xbox B + X + A to start the BIOS setup where you can
change the region to USA or Japan. The default region is Europe so the
game will not work if this step is skipped.

-Fixed NVRAM saving for CPS2 games

-Added option to overclock the 68K CPU used in many games. Games that
use this CPU include CPS2, CPS2, Neo Geo, Cave, and others. Set it to
300% for games like Metal Slug 1, 2, ESP Rade and it will get rid of all
slowdown. If any game that uses this CPU has slowdowns then increase the
CPU speed and it may fix the issue. It also may cause bugs in the game.

-Added alternate ways to display the in game emulation menu. This will be
useful for players who use controllers without a right analog stick.

The choices are:

Right Analog Click
Left Trigger + Right Trigger
Back + Start
Left Trigger + Back
Right Trigger + Back

-Added option to display all games, parents, or clones. This applies
to the ROM browser and all filters. This does not apply to the Favorites
list.

-Added option to highlight parent sets. That way a user can browse
all the games and quickly pick out a parent ROM.

-Arcade images can now be viewed from the ROM browser. Select a game
and press the Start button. The images go in:

Control panel images - D:\Images\cpanel
Marquee images - D:\Images\marquee
Cabinet images - D:\Images\cabinet
Flyer images - D:\Images\flyers
In game screenshots - D:\Images\snap
Title screenshots - D:\Images\title

Press left and right on the D-Pad to go to the next or previous image.
Use the left analog stick to move the image
Use the right analog stick to zoom in or out.

-The MAME history can now be viewed from the ROM Browser. Select a game
and press the Back button

-Added DIP switch settings to most games. This can cause problems for
some games. Most of the time it works perfectly.

-Added an option to disable DIP switches. If a game runs strangely,
try disabling DIP switches.

-Change the crashes error message to be more generic

-Removed a few Genesis games that were causing the emulator to crash

-Fixed a bug where the Option screen wasn't loaded when a PGM game ran
out of memory or a ROM was invalid.

-Fixed a bug where the Flicker Filter wasn't applied when a game
started. I have no way to test this fix so if it is still broken please
post in this thread. Try testing a Neo Geo Game, Toaplan, Psykio, Cave,
CPS2, and Sega game to see if it works for all the different cores.

-Added an option to disable Hiscore saving. Hiscore saving is disabled
by default. This is on a per game basis. If a game works fine the first
time it's played, but then has problems the next time, it may be because
of the Hiscore saving. It can be found in the General Options menu.

-Cleaned up the source so that all cores use the same GUI files

-Added some defensive code to make the emulator more stable. Hopefully
this will eliminate the random crashes when saving a screenshot,
savestates, etc...

-Fixed a bug that caused a corrupt ini file when the button A was
pressed when there were no games

-Fixed some bugs where the default controller setting wasn't used

-Added an option to disable video previews. If you are not going to use
them then disable this option. It will speed up the ROM browser

-Added option to disable frame skipping. I can't think of one reason
why anyone should do this since it will cause audio problems and
slowdowns if a game can't run fullspeed. It is automatically disabled
when it is not needed. Forcing it to be disabled all the time is not
recommended. However, this was requested so I added it.

-Fixed a bug where centered text wasn't always centered.

-Disabled Neo Geo save states. These were too buggy and many games
crashed the emulator. This may be related to memory problems with the PC
port, my code, or something else.

-Removed most of the debugging code. This should add a speed up.

-Added an image viewer.

-Fixed a bug where the Main Menu video would play after exiting a game.

-Added the Main Menu video paths to the skin ini file. This way a user
can create a skin that uses different videos and provide them with the
skin.

-Added Kenshiro's fixes for Neo Geo and Psykio:

New Psykio games that now work:

Gunbarich
Mahjong G-Taste
Tetris the Absolute The Grand Master 2
Tetris the Absolute The Grand Master 2 Plus

NeoGeo fixes:

Speed up a bit more loading time
Reduce the amount of RAM on some P-X decrypting routines
Get svcpcbnd working (need a special graphic routine for the 2 * 32Mo
C-X)
Remove the support for the PCB version of KOF2003. It will never work
unless to rewrite completely the VMM support
Added samsho4k: Pae Wang Jeon Seol / Legend of a Warrior (Korean
censored Samurai Shodown IV)
Added samsho2k: Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of
Samurai Shodown II)
Added a function to select the bios you want. Unibios 2.3 is the default
one.
Fixed wrong name in mslug4nd set: 263-pg1.bin ---> should be 263-p1.bin
Fixed game title of mslug3hd: Metal Slug 3 (not encrypted, decrypted C)
---> Metal Slug 3 (not encrypted, decrypted C)
Various source cleanup

-Added an updated cheat.dat file by neoryu

The changes are:

A “Select Background” option was added for these sets:

ssf2
ssf2u
ssf2xj
ssf2t
ssf2tur1
ssf2tu
ssf2xj
sfa
sfau
sfz
sfzjr1
sfzjr2
sfz2al
sfz2alj
dstlk
dstlku
dstlkur1
vampj
vampjr1
vampjr2
cybots
cybotsj
cybotsu
msh
mshj
mshjr1
mshu
vsav
vsavj
vsavu
vsav2

An option to play as True M. Bison / Shin Vega was added for these sets:

sfa3
sfa3u
sfz3
sfz3jr1


The emulator did not see the cheats at all for these sets:

sfz2al
sfz2alj

-This has been adjusted.

The emulator did not see the “Select Character PL1 /Select Character
PL2” cheat for these sets:

sfa
sfau
sfzj
sfzjr1
sfzjr2
sfz2al
sfz2alj

-This has been adjusted.

I made many changes to the characters’ names for the Euro, Japan, and US
romsets for all of the corresponding CPS2 fighting games. It makes it
easier to apply a cheat pertaining to the correct character when you’re
playing a game where the name difference matters for the cheat you
select. For example, a Balrog cheat will be an M.Bison cheat if you’re
playing a rom without corrected cheat names for the region it came from.
For the parent Euro, US, and Japan CPS2 fighting games, this minor issue
has been remedied.

Notes:

You will need to do a new install. You cannot use any previous CPS2 
save states, nvram, or game settings. The safest way to upgrade is:

1) Delete the save file for FBL 1.0
2) Copy the FBL 1.1 folder to the Xbox
3) Copy your Roms and screenshots from the FBL 1.0 folder to the FBL 1.1
folder

If you ignore this step and try to copy the new files over the FBL 1.0
directory, it will not work.

To upgrade any of the new skins to work with FBL 1.1:

1) Open the ini file for the skin
2) Add these lines to the bottom:

MovieEnabled=1
DisplayMode=2
HighlightParent=0
PauseGame=0
MainMenuMovieSwitchEnabled=1
MainMenuVideoPath0=D:\media\background1.xmv
MainMenuVideoPath1=D:\media\background2.xmv
MainMenuVideoPath2=D:\media\background3.xmv
MainMenuVideoPath3=D:\media\background4.xmv
MainMenuVideoPath4=D:\media\background5.xmv
MainMenuVideoPath5=D:\media\background6.xmv

------------------------------------------------------------------------
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:

-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. This only has to be done once
 since each game saves the settings to a separate ini file.
 
 -I'm not sure if command line launching works correctly. I didn't test
 it.

-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)  Release it properly through Xbox-Scene. This way, you get the
      proper credit and it helps keep the Xbox scene alive.

-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.

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.








